initial commit in accordance with CQ 3784
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.classpath b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.classpath
new file mode 100644
index 0000000..4848249
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.cvsignore b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.cvsignore
new file mode 100644
index 0000000..092357e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.cvsignore
@@ -0,0 +1 @@
+bin

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.project b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.project
new file mode 100644
index 0000000..f658ae3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.objectteams.otdt.ui.tests.refactoring</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/META-INF/MANIFEST.MF b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..96a7953
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/META-INF/MANIFEST.MF
@@ -0,0 +1,33 @@
+Manifest-Version: 1.0

+Bundle-ManifestVersion: 2

+Bundle-Name: OT Refactoring Test Plug-in

+Bundle-SymbolicName: org.eclipse.objectteams.otdt.ui.tests.refactoring;singleton:=true

+Bundle-Version: 1.3.0

+Bundle-ClassPath: otrefactoringtests.jar

+Bundle-Activator: org.eclipse.objectteams.otdt.ui.tests.refactoring.OTRefactoringTestPlugin

+Bundle-Vendor: The TOPPrax consortium

+Require-Bundle: org.eclipse.core.runtime,

+ org.eclipse.core.resources,

+ org.eclipse.jdt.core,

+ org.eclipse.jdt.ui,

+ org.eclipse.ui,

+ org.eclipse.ui.ide,

+ org.eclipse.jface.text,

+ org.eclipse.ltk.core.refactoring,

+ org.junit,

+ org.eclipse.jdt.core.tests.compiler,

+ org.eclipse.jdt.ui.tests.refactoring,

+ org.eclipse.objectteams.otdt.ui.tests,

+ org.eclipse.objectteams.otdt.tests,

+ org.eclipse.test.performance,

+ org.eclipse.objectteams.otdt.refactoring,

+ org.eclipse.jdt.core.manipulation,

+ org.eclipse.jdt.ui.tests

+Bundle-ActivationPolicy: lazy

+Export-Package: org.eclipse.objectteams.otdt.ui.tests.refactoring,

+ org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod,

+ org.eclipse.objectteams.otdt.ui.tests.refactoring.move,

+ org.eclipse.objectteams.otdt.ui.tests.refactoring.rename,

+ org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg,

+ org.eclipse.objectteams.otdt.ui.tests.refactoring.requiredfeatures,

+ org.eclipse.objectteams.otdt.ui.tests.refactoring.util

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/build.properties b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/build.properties
new file mode 100644
index 0000000..ba5e580
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/build.properties
@@ -0,0 +1,13 @@
+source.otrefactoringtests.jar = src/

+output.otrefactoringtests.jar = bin/

+bin.includes = plugin.xml,\

+               otrefactoringtests.jar,\

+               testdata/,\

+               testresources/,\

+               test.xml,\

+               META-INF/,\

+               workspace/,\

+               JCL/

+src.includes = build.properties,\

+               .project,\

+               .classpath

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/plugin.xml b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/plugin.xml
new file mode 100644
index 0000000..66586ff
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/plugin.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.0"?>

+<plugin>

+</plugin>

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/AllTests.java
new file mode 100644
index 0000000..7506208
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/AllTests.java
@@ -0,0 +1,78 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ * 

+ * Runs all OT-specific refactoring tests and corresponding eclipse refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All Refactoring Tests");

+

+        // OTDT refactoring tests

+        // rename

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameMethodInInterfaceTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenamePrivateMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameStaticMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameVirtualMethodInClassTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenamePrivateFieldTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameTypeTests.suite());

+        

+        // move

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveInstanceMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveStaticMethodTests.suite());

+        

+        //extract

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractMethodRefactoringUtilTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractTempTests.suite());

+

+        //copy & paste, delete (cut)

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTCopyToClipboardTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTDeleteTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTPasteActionTest.suite());

+        

+        // pull & push

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.pullup.PullUpTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.pushdown.PushDownTests.suite());

+        

+        // ot refactorings

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.inlinecallin.InlineCallinTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractcallin.ExtractCallinTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/FileBasedRefactoringTest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/FileBasedRefactoringTest.java
new file mode 100644
index 0000000..e17c59b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/FileBasedRefactoringTest.java
@@ -0,0 +1,37 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring;

+

+import org.eclipse.objectteams.otdt.tests.FileBasedTest;

+

+/**

+ * @author svacina

+ */

+public class FileBasedRefactoringTest extends FileBasedTest {

+

+    public FileBasedRefactoringTest(String name) {

+        super(name);

+    }

+

+    protected String getPluginID() {

+        return "org.eclipse.objectteams.otdt.ui.tests.refactoring";

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/MySetup.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/MySetup.java
new file mode 100644
index 0000000..a7af276
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/MySetup.java
@@ -0,0 +1,122 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/

+package org.eclipse.objectteams.otdt.ui.tests.refactoring;

+

+import java.util.Hashtable;

+

+import junit.extensions.TestSetup;

+import junit.framework.Test;

+

+import org.eclipse.jdt.core.IJavaProject;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.IPackageFragmentRoot;

+import org.eclipse.jdt.core.JavaCore;

+import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;

+import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility;

+import org.eclipse.jdt.internal.corext.template.java.CodeTemplateContextType;

+import org.eclipse.jdt.internal.ui.JavaPlugin;

+import org.eclipse.objectteams.otdt.ui.tests.util.JavaProjectHelper;

+import org.eclipse.objectteams.otdt.ui.tests.util.TestOptions;

+

+public class MySetup extends TestSetup

+{

+    private static IPackageFragmentRoot _root;

+    private static IPackageFragment _packageP;

+    private static IJavaProject _javaTestProject;

+    

+    public static final String CONTAINER = "src";

+

+    

+    public MySetup(Test test)

+    {

+        super(test);

+    }

+

+    public static IPackageFragmentRoot getDefaultSourceFolder() throws Exception

+    {

+        if (_root != null)

+        {

+            return _root;

+        }

+        throw new Exception("MySetup not initialized");

+    }

+

+    public static IJavaProject getProject() throws Exception

+    {

+        if (_javaTestProject != null)

+        {

+            return _javaTestProject;

+        }

+        throw new Exception("MySetup not initialized");

+    }

+

+    public static IPackageFragment getPackageP() throws Exception

+    {

+        if (_packageP != null)

+        {

+            return _packageP;

+        }

+        throw new Exception("MySetup not initialized");

+    }

+

+    protected void setUp() throws Exception

+    {

+        super.setUp();

+        JavaProjectHelper.setAutoBuilding(false);

+        if (JavaPlugin.getActivePage() != null)

+        {

+            JavaPlugin.getActivePage().close();

+        }

+        _javaTestProject = JavaProjectHelper.createOTJavaProject("TestProject"

+                + System.currentTimeMillis(), "bin");

+        JavaProjectHelper.addRTJar(_javaTestProject);

+        _root = JavaProjectHelper.addSourceContainer(_javaTestProject,

+                CONTAINER);

+        _packageP = _root.createPackageFragment("p", true, null);

+

+        Hashtable options = TestOptions.getFormatterOptions();

+        options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaCore.TAB);

+        options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");

+        options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");

+        JavaCore.setOptions(options);

+        TestOptions.initializeCodeGenerationOptions();

+        JavaPlugin.getDefault().getCodeTemplateStore().load();

+

+        StringBuffer comment = new StringBuffer();

+        comment.append("/**\n");

+        comment.append(" * ${tags}\n");

+        comment.append(" */");

+        StubUtility.setCodeTemplate(CodeTemplateContextType.CONSTRUCTORCOMMENT_ID, comment.toString(), null);

+    }

+

+    protected void tearDown() throws Exception

+    {

+        if (_packageP.exists())

+        {

+            _packageP.delete(true, null);

+        }

+        JavaProjectHelper.removeSourceContainer(_javaTestProject, CONTAINER);

+        JavaProjectHelper.delete(_javaTestProject);

+        super.tearDown();

+    }

+

+}

+

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/OTRefactoringTestPlugin.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/OTRefactoringTestPlugin.java
new file mode 100644
index 0000000..ba5484a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/OTRefactoringTestPlugin.java
@@ -0,0 +1,83 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring;

+

+import java.io.File;

+import java.io.IOException;

+import java.io.InputStream;

+import java.net.URL;

+

+import org.eclipse.core.resources.IWorkspace;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.core.runtime.IPath;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.core.runtime.Platform;

+import org.eclipse.core.runtime.Plugin;

+

+/**

+ * The main plugin class to be used in the desktop.

+ */

+public class OTRefactoringTestPlugin extends Plugin

+{

+    //The shared instance.

+    private static OTRefactoringTestPlugin plugin;

+

+    public OTRefactoringTestPlugin()

+    {

+        super();

+        plugin = this;

+    }

+

+    /**

+     * Returns the shared instance.

+     */

+    public static OTRefactoringTestPlugin getDefault()

+    {

+        return plugin;

+    }

+

+    public static IWorkspace getWorkspace()

+    {

+        return ResourcesPlugin.getWorkspace();

+    }

+

+    public File getFileInPlugin(IPath path)

+    {

+        try

+        {

+            URL installURL = new URL(getDefault().getBundle().getEntry("/"), path.toString());

+            URL localURL = Platform.asLocalURL(installURL);

+            return new File(localURL.getFile());

+        }

+        catch (IOException ex)

+        {

+            return null;

+        }

+    }

+

+    public InputStream getTestResourceStream(String fileName)

+            throws IOException

+    {

+        IPath path = new Path("testdata").append(fileName);

+        URL url = new URL(getDefault().getBundle().getEntry("/"), path.toString());

+        return url.openStream();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/OTRefactoringTestSetup.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/OTRefactoringTestSetup.java
new file mode 100644
index 0000000..98436ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/OTRefactoringTestSetup.java
@@ -0,0 +1,42 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring;
+
+import junit.framework.Test;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTestSetup;
+import org.eclipse.objectteams.otdt.ui.tests.util.JavaProjectHelper;
+
+@SuppressWarnings("restriction")
+public class OTRefactoringTestSetup extends RefactoringTestSetup {
+
+	public OTRefactoringTestSetup(Test test) {
+		super(test);
+	}
+
+//{ObjectTeams: changed project creation:
+	protected IJavaProject createJavaProject(String string, String string2) throws CoreException {
+		return JavaProjectHelper.createOTJavaProject("TestProject"+System.currentTimeMillis(), "bin");
+// SH}
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/RefactoringTest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/RefactoringTest.java
new file mode 100644
index 0000000..1e169f3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/RefactoringTest.java
@@ -0,0 +1,667 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/

+package org.eclipse.objectteams.otdt.ui.tests.refactoring;

+

+import java.io.BufferedReader;

+import java.io.IOException;

+import java.io.InputStream;

+import java.io.InputStreamReader;

+import java.io.StringBufferInputStream;

+import java.util.ArrayList;

+import java.util.HashSet;

+import java.util.List;

+import java.util.Set;

+

+import junit.framework.TestCase;

+

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.NullProgressMonitor;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IField;

+import org.eclipse.jdt.core.IJavaElement;

+import org.eclipse.jdt.core.IJavaProject;

+import org.eclipse.jdt.core.IMember;

+import org.eclipse.jdt.core.IMethod;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.IPackageFragmentRoot;

+import org.eclipse.jdt.core.ISourceManipulation;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.core.search.IJavaSearchConstants;

+import org.eclipse.jdt.core.search.ITypeNameRequestor;

+import org.eclipse.jdt.core.search.SearchEngine;

+import org.eclipse.jdt.core.search.SearchPattern;

+import org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil;

+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;

+import org.eclipse.jdt.internal.corext.util.Strings;

+import org.eclipse.ltk.core.refactoring.Change;

+import org.eclipse.ltk.core.refactoring.CheckConditionsOperation;

+import org.eclipse.ltk.core.refactoring.CreateChangeOperation;

+import org.eclipse.ltk.core.refactoring.IUndoManager;

+import org.eclipse.ltk.core.refactoring.PerformChangeOperation;

+import org.eclipse.ltk.core.refactoring.Refactoring;

+import org.eclipse.ltk.core.refactoring.RefactoringCore;

+import org.eclipse.ltk.core.refactoring.RefactoringStatus;

+

+public abstract class RefactoringTest extends TestCase

+{

+    private IPackageFragmentRoot _root;

+    private IPackageFragment _packageP;

+

+    public boolean _isVerbose = false;

+

+    public static final String TEST_PATH_PREFIX = "";

+

+    protected static final String TEST_INPUT_INFIX = "/in/";

+    protected static final String TEST_OUTPUT_INFIX = "/out/";

+    protected static final String CONTAINER = "src";

+

+    public RefactoringTest(String name)

+    {

+        super(name);

+    }

+

+    protected void setUp() throws Exception

+    {

+        _root = MySetup.getDefaultSourceFolder();

+        _packageP = MySetup.getPackageP();

+

+        if (_isVerbose)

+        {

+            System.out

+                    .println("\n---------------------------------------------");

+            System.out.println("\nTest:" + getClass() + "." + getName());

+        }

+        RefactoringCore.getUndoManager().flush();

+    }

+

+    protected void tearDown() throws Exception

+    {

+        refreshFromLocal();

+        performDummySearch();

+

+        if (getPackageP().exists())

+        {

+            tryDeletingAllJavaChildren(getPackageP());

+            tryDeletingAllNonJavaChildResources(getPackageP());

+        }

+

+        if (getRoot().exists())

+        {

+            IJavaElement[] packages = getRoot().getChildren();

+            for (int i = 0; i < packages.length; i++)

+            {

+                try

+                {

+                    IPackageFragment pack = (IPackageFragment)packages[i];

+                    if (!pack.equals(getPackageP()) && pack.exists()

+                            && !pack.isReadOnly())

+                        pack.delete(true, null);

+                }

+                catch (JavaModelException ex)

+                {

+                    //try to delete'em all

+                    ex.printStackTrace();

+                }

+            }

+        }

+    }

+

+    private void refreshFromLocal() throws CoreException

+    {

+        if (getRoot().exists())

+        {

+            getRoot().getResource().

+            		  refreshLocal(IResource.DEPTH_INFINITE, null);

+        }

+        else if (getPackageP().exists())//don't refresh package if root already refreshed

+        {

+            getPackageP().getResource().

+            			  refreshLocal(IResource.DEPTH_INFINITE, null);

+        }

+    }

+

+    private static void tryDeletingAllNonJavaChildResources(

+            IPackageFragment pack) throws JavaModelException

+    {

+        Object[] nonJavaKids = pack.getNonJavaResources();

+        for (int i = 0; i < nonJavaKids.length; i++)

+        {

+            if (nonJavaKids[i] instanceof IResource)

+            {

+                IResource resource = (IResource)nonJavaKids[i];

+                try

+                {

+                    resource.delete(true, null);

+                }

+                catch (CoreException ex)

+                {

+                    //try to delete'em all

+                    ex.printStackTrace();

+                }

+            }

+        }

+    }

+

+    private static void tryDeletingAllJavaChildren(IPackageFragment pack)

+            throws JavaModelException

+    {

+        IJavaElement[] kids = pack.getChildren();

+        for (int i = 0; i < kids.length; i++)

+        {

+            if (kids[i] instanceof ISourceManipulation)

+            {

+                try

+                {

+                    if (kids[i].exists() && !kids[i].isReadOnly())

+                        ((ISourceManipulation)kids[i]).delete(true, null);

+                }

+                catch (JavaModelException ex)

+                {

+                    //try to delete'em all

+                    ex.printStackTrace();

+                }

+            }

+        }

+    }

+

+    protected IPackageFragmentRoot getRoot()

+    {

+        return _root;

+    }

+

+    protected IPackageFragment getPackageP()

+    {

+        return _packageP;

+    }

+

+    protected final RefactoringStatus performRefactoring(Refactoring ref)

+            throws Exception

+    {

+        return performRefactoring(ref, true);

+    }

+

+    protected final RefactoringStatus performRefactoring(Refactoring ref,

+            boolean providesUndo) throws Exception

+    {

+        performDummySearch();

+        IUndoManager undoManager = getUndoManager();

+        CreateChangeOperation create = new CreateChangeOperation(

+                new CheckConditionsOperation(ref,

+                        CheckConditionsOperation.ALL_CONDITIONS),

+                RefactoringStatus.FATAL);

+        PerformChangeOperation perform = new PerformChangeOperation(create);

+        perform.setUndoManager(undoManager, ref.getName());

+        ResourcesPlugin.getWorkspace().run(perform, new NullProgressMonitor());

+        RefactoringStatus status = create.getConditionCheckingStatus();

+        if (!status.isOK())

+        {

+            return status;

+        }

+        assertTrue("Change wasn't executed", perform.changeExecuted());

+        Change undo = perform.getUndoChange();

+        if (providesUndo)

+        {

+            assertNotNull("Undo doesn't exist", undo);

+            assertTrue("Undo manager is empty", undoManager.anythingToUndo());

+        }

+        else

+        {

+            assertNull("Undo manager contains undo but shouldn't", undo);

+        }

+        return null;

+    }

+

+    protected final RefactoringStatus performRefactoringWithStatus(

+            Refactoring ref) throws Exception

+    {

+        performDummySearch();

+        CreateChangeOperation create = new CreateChangeOperation(

+                new CheckConditionsOperation(ref,

+                        CheckConditionsOperation.ALL_CONDITIONS),

+                RefactoringStatus.FATAL);

+        PerformChangeOperation perform = new PerformChangeOperation(create);

+        perform.setUndoManager(RefactoringCore.getUndoManager(), ref.getName());

+        ResourcesPlugin.getWorkspace().run(perform, new NullProgressMonitor());

+        RefactoringStatus status = create.getConditionCheckingStatus();

+        if (status.hasFatalError())

+        {

+            return status;

+        }

+        assertTrue("Change wasn't executed", perform.changeExecuted());

+        return status;

+    }

+

+    protected void performDummySearch() throws Exception

+    {

+        performDummySearch(getPackageP());

+    }

+

+    protected final Change performChange(final Refactoring refactoring,

+            boolean storeUndo) throws Exception

+    {

+        CreateChangeOperation create = new CreateChangeOperation(refactoring);

+        PerformChangeOperation perform = new PerformChangeOperation(create);

+        if (storeUndo)

+        {

+            perform.setUndoManager(getUndoManager(), refactoring.getName());

+        }

+        ResourcesPlugin.getWorkspace().run(perform, new NullProgressMonitor());

+        assertTrue("Change wasn't executed", perform.changeExecuted());

+        return perform.getUndoChange();

+    }

+

+    protected final Change performChange(final Change change) throws Exception

+    {

+        PerformChangeOperation perform = new PerformChangeOperation(change);

+        ResourcesPlugin.getWorkspace().run(perform, new NullProgressMonitor());

+        assertTrue("Change wasn't executed", perform.changeExecuted());

+        return perform.getUndoChange();

+    }

+

+    protected IUndoManager getUndoManager()

+    {

+        IUndoManager undoManager = RefactoringCore.getUndoManager();

+        undoManager.flush();

+        return undoManager;

+    }

+

+    /** ************** helpers ***************** */

+    /** ** mostly not general, just shortcuts **** */

+

+    protected IType getType(ICompilationUnit cu, String name)

+            throws JavaModelException

+    {

+        IType[] types = cu.getAllTypes();

+        for (int i = 0; i < types.length; i++)

+        {

+            if (types[i].getFullyQualifiedName().equals(name)

+                    || types[i].getElementName().equals(name))

+            {

+                return types[i];

+            }

+        }

+        return null;

+    }

+

+    /**

+     * subclasses override to inform about the location of their test cases

+     */

+    protected String getRefactoringPath()

+    {

+        return "";

+    }

+

+    /**

+     * example "RenameType/"

+     */

+    protected String getTestPath()

+    {

+        return TEST_PATH_PREFIX + getRefactoringPath();

+    }

+

+    /**

+     * @param cuName

+     * @param infix

+     *            example "RenameTest/test0 + infix + cuName.java"

+     */

+    protected String createTestFileName(String cuName, String infix)

+    {

+        return getTestPath() + getName() + infix + cuName + ".java";

+    }

+

+    protected String getInputTestFileName(String cuName)

+    {

+        return createTestFileName(cuName, TEST_INPUT_INFIX);

+    }

+

+    /**

+     * @param subDirName

+     *            example "p/" or "org/eclipse/jdt/"

+     */

+    protected String getInputTestFileName(String cuName, String subDirName)

+    {

+        return createTestFileName(cuName, TEST_INPUT_INFIX + subDirName);

+    }

+

+    protected String getOutputTestFileName(String cuName)

+    {

+        return createTestFileName(cuName, TEST_OUTPUT_INFIX);

+    }

+

+    /**

+     * @param subDirName

+     *            example "p/" or "org/eclipse/jdt/"

+     */

+    protected String getOutputTestFileName(String cuName, String subDirName)

+    {

+        return createTestFileName(cuName, TEST_OUTPUT_INFIX + subDirName);

+    }

+

+    protected ICompilationUnit createCUfromTestFile(IPackageFragment pack,

+            String cuName) throws Exception

+    {

+        return createCUfromTestFile(pack, cuName, true);

+    }

+

+    protected ICompilationUnit createCUfromTestFile(IPackageFragment pack,

+            String cuName, String subDirName) throws Exception

+    {

+        return createCUfromTestFile(pack, cuName, subDirName, true);

+    }

+

+    protected ICompilationUnit createCUfromTestFile(IPackageFragment pack,

+            String cuName, boolean input) throws Exception

+    {

+        String contents = input ? getFileContents(getInputTestFileName(cuName))

+                : getFileContents(getOutputTestFileName(cuName));

+        return createCU(pack, cuName + ".java", contents);

+    }

+

+    protected ICompilationUnit createCUfromTestFile(IPackageFragment pack,

+            String cuName, String subDirName, boolean input) throws Exception

+    {

+        String contents = input ? getFileContents(getInputTestFileName(cuName,

+                subDirName)) : getFileContents(getOutputTestFileName(cuName,

+                subDirName));

+

+        return createCU(pack, cuName + ".java", contents);

+    }

+

+    protected void printTestDisabledMessage(String explanation)

+    {

+        System.out.println("\n" + getClass().getName() + "::" + getName()

+                + " disabled (" + explanation + ")");

+    }

+

+    //-----------------------

+    public static InputStream getStream(String content)

+    {

+        return new StringBufferInputStream(content);

+    }

+

+    public static IPackageFragmentRoot getSourceFolder(

+            IJavaProject javaProject, String name) throws JavaModelException

+    {

+        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();

+        for (int i = 0; i < roots.length; i++)

+        {

+            if (!roots[i].isArchive() && roots[i].getElementName().equals(name))

+                return roots[i];

+        }

+        return null;

+    }

+

+    public static String getFileContents(String fileName) throws IOException

+    {

+        return getContents(getFileInputStream(fileName));

+    }

+

+    public static String getContents(IFile file) throws IOException,

+            CoreException

+    {

+        return getContents(file.getContents());

+    }

+

+    public static ICompilationUnit createCU(IPackageFragment pack, String name,

+            String contents) throws Exception

+    {

+        if (pack.getCompilationUnit(name).exists())

+        {

+            return pack.getCompilationUnit(name);

+        }

+        ICompilationUnit cu = pack.createCompilationUnit(name, contents, true,

+                null);

+        cu.save(null, true);

+        return cu;

+    }

+

+    public static String getContents(InputStream in) throws IOException

+    {

+        BufferedReader br = new BufferedReader(new InputStreamReader(in));

+        StringBuffer sb = new StringBuffer(300);

+        try

+        {

+            int read = 0;

+            while ((read = br.read()) != -1)

+            {

+                sb.append((char)read);

+            }

+        }

+        finally

+        {

+            br.close();

+        }

+        return sb.toString();

+    }

+

+    public static InputStream getFileInputStream(String fileName)

+            throws IOException

+    {

+        return OTRefactoringTestPlugin.getDefault().getTestResourceStream(

+                fileName);

+    }

+

+    public static String removeExtension(String fileName)

+    {

+        return fileName.substring(0, fileName.lastIndexOf('.'));

+    }

+

+    public static void performDummySearch(IJavaElement element)

+            throws Exception

+    {

+        new SearchEngine().searchAllTypeNames(ResourcesPlugin.getWorkspace(),

+                null, null, SearchPattern.R_EXACT_MATCH, true,

+                IJavaSearchConstants.CLASS, SearchEngine

+                        .createJavaSearchScope(new IJavaElement[] { element }),

+                new Requestor(),

+                IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);

+    }

+

+    public static IMember[] merge(IMember[] a1, IMember[] a2, IMember[] a3)

+    {

+        return JavaElementUtil.merge(JavaElementUtil.merge(a1, a2), a3);

+    }

+

+    public static IMember[] merge(IMember[] a1, IMember[] a2)

+    {

+        return JavaElementUtil.merge(a1, a2);

+    }

+

+    public static IField[] getFields(IType type, String[] names)

+            throws JavaModelException

+    {

+        if (names == null)

+        {

+            return new IField[0];

+        }

+        Set fields = new HashSet();

+        for (int i = 0; i < names.length; i++)

+        {

+            IField field = type.getField(names[i]);

+            assertTrue("field " + field.getElementName() + " does not exist",

+                    field.exists());

+            fields.add(field);

+        }

+        return (IField[])fields.toArray(new IField[fields.size()]);

+    }

+

+    public static IType[] getMemberTypes(IType type, String[] names)

+            throws JavaModelException

+    {

+        if (names == null)

+        {

+            return new IType[0];

+        }

+        Set memberTypes = new HashSet();

+        for (int i = 0; i < names.length; i++)

+        {

+            IType memberType = type.getType(names[i]);

+            assertTrue("member type " + memberType.getElementName()

+                    + " does not exist", memberType.exists());

+            memberTypes.add(memberType);

+        }

+        return (IType[])memberTypes.toArray(new IType[memberTypes.size()]);

+    }

+

+    public static IMethod[] getMethods(IType type, String[] names,

+            String[][] signatures) throws JavaModelException

+    {

+        if (names == null || signatures == null)

+        {

+            return new IMethod[0];

+        }

+        List methods = new ArrayList(names.length);

+        for (int i = 0; i < names.length; i++)

+        {

+            IMethod method = type.getMethod(names[i], signatures[i]);

+            assertTrue("method " + method.getElementName() + " does not exist",

+                    method.exists());

+            if (!methods.contains(method))

+            {

+                methods.add(method);

+            }

+        }

+        return (IMethod[])methods.toArray(new IMethod[methods.size()]);

+    }

+

+    public static IType[] findTypes(IType[] types, String[] namesOfTypesToPullUp)

+    {

+        List found = new ArrayList(types.length);

+        for (int i = 0; i < types.length; i++)

+        {

+            IType type = types[i];

+            for (int j = 0; j < namesOfTypesToPullUp.length; j++)

+            {

+                String name = namesOfTypesToPullUp[j];

+                if (type.getElementName().equals(name))

+                {

+                    found.add(type);

+                }

+            }

+        }

+        return (IType[])found.toArray(new IType[found.size()]);

+    }

+

+    public static IField[] findFields(IField[] fields,

+            String[] namesOfFieldsToPullUp)

+    {

+        List found = new ArrayList(fields.length);

+        for (int i = 0; i < fields.length; i++)

+        {

+            IField field = fields[i];

+            for (int j = 0; j < namesOfFieldsToPullUp.length; j++)

+            {

+                String name = namesOfFieldsToPullUp[j];

+                if (field.getElementName().equals(name))

+                {

+                    found.add(field);

+                }

+            }

+        }

+        return (IField[])found.toArray(new IField[found.size()]);

+    }

+

+    public static IMethod[] findMethods(IMethod[] selectedMethods,

+            String[] namesOfMethods, String[][] signaturesOfMethods)

+    {

+        List found = new ArrayList(selectedMethods.length);

+        for (int i = 0; i < selectedMethods.length; i++)

+        {

+            IMethod method = selectedMethods[i];

+            String[] paramTypes = method.getParameterTypes();

+            for (int j = 0; j < namesOfMethods.length; j++)

+            {

+                String methodName = namesOfMethods[j];

+                if (!methodName.equals(method.getElementName()))

+                {

+                    continue;

+                }

+                String[] methodSig = signaturesOfMethods[j];

+                if (!areSameSignatures(paramTypes, methodSig))

+                {

+                    continue;

+                }

+                found.add(method);

+            }

+        }

+        return (IMethod[])found.toArray(new IMethod[found.size()]);

+    }

+

+    private static boolean areSameSignatures(String[] s1, String[] s2)

+    {

+        if (s1.length != s2.length)

+        {

+            return false;

+        }

+        for (int i = 0; i < s1.length; i++)

+        {

+            if (!s1[i].equals(s2[i]))

+            {

+                return false;

+            }

+        }

+        return true;

+    }

+

+    /**

+     * Line-based version of junit.framework.Assert.assertEquals(String, String)

+     * without considering line delimiters.

+     */

+    public static void assertEqualLines(String expected, String actual)

+    {

+        assertEqualLines("", expected, actual);

+    }

+

+    /**

+     * Line-based version of junit.framework.Assert.assertEquals(String, String, String)

+     * without considering line delimiters.

+     */

+    public static void assertEqualLines(String message, String expected,

+            String actual)

+    {

+        String[] expectedLines = Strings.convertIntoLines(expected);

+        String[] actualLines = Strings.convertIntoLines(actual);

+

+        String expected2 = (expectedLines == null ? null : Strings.concatenate(

+                expectedLines, "\n"));

+        String actual2 = (actualLines == null ? null : Strings.concatenate(

+                actualLines, "\n"));

+        assertEquals(message, expected2, actual2);

+    }

+

+    private static class Requestor implements ITypeNameRequestor

+    {

+

+        public void acceptClass(char[] packageName, char[] simpleTypeName,

+                char[][] enclosingTypeNames, String path)

+        {

+        }

+

+        public void acceptInterface(char[] packageName, char[] simpleTypeName,

+                char[][] enclosingTypeNames, String path)

+        {

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractcallin/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractcallin/AllTests.java
new file mode 100644
index 0000000..182a5d0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractcallin/AllTests.java
@@ -0,0 +1,44 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractcallin;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-ExtractCallin-Refactoring Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractcallin.ExtractCallinTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractcallin/ExtractCallinTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractcallin/ExtractCallinTests.java
new file mode 100644
index 0000000..084eeb7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractcallin/ExtractCallinTests.java
@@ -0,0 +1,140 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractcallin;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.objectteams.otdt.internal.core.CallinMapping;
+import org.eclipse.objectteams.otdt.internal.refactoring.otrefactorings.extractcallin.ExtractCallinRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * @author Johannes Gebauer
+ * 
+ */
+@SuppressWarnings("restriction")
+public class ExtractCallinTests extends RefactoringTest {
+	private static final String REFACTORING_PATH = "ExtractCallin/";
+
+	public ExtractCallinTests(String name) {
+		super(name);
+	}
+
+	public static Test suite() {
+		return new MySetup(new TestSuite(ExtractCallinTests.class));
+	}
+
+	public static Test setUpTest(Test test) {
+		return new MySetup(test);
+	}
+
+	protected String getRefactoringPath() {
+		return REFACTORING_PATH;
+	}
+
+	private ICompilationUnit[] createCUs(String[] cuNames) throws Exception {
+		ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+
+		for (int idx = 0; idx < cuNames.length; idx++) {
+			Assert.isNotNull(cuNames[idx]);
+			cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+		}
+		return cus;
+	}
+
+	private ExtractCallinRefactoring createExtractCallinRefactoring(IMethod baseMethod, IType role, int mappingKind) {
+		ExtractCallinRefactoring refactoring = new ExtractCallinRefactoring(baseMethod, role, mappingKind);
+		return refactoring;
+	}
+
+	private void performPullUp_pass(String[] cuNames, String baseMethodName, String[] baseMethodSignature, int mappingKind, boolean deleteRoleMethod,
+			String baseName, String roleName, boolean copyBaseMethod) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType baseType = getType(cus[0], baseName);
+			IType roleType = getType(cus[1], roleName);
+
+			IMethod baseMethod = baseType.getMethod(baseMethodName, baseMethodSignature);
+			assertTrue("base method " + baseMethod.getElementName() + " does not exist", baseMethod.exists());
+
+			ExtractCallinRefactoring ref = createExtractCallinRefactoring(baseMethod, roleType, mappingKind);
+
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+
+			ref.setDeleteBaseMethod(deleteRoleMethod);
+	
+			ref.setCopyBaseMethod(copyBaseMethod);
+			
+			RefactoringStatus checkInputResult = ref.checkFinalConditions(new NullProgressMonitor());
+			assertTrue("precondition was supposed to pass", !checkInputResult.hasError());
+			performChange(ref, false);
+
+			for (int i = 0; i < cus.length; i++) {
+				String expected = getFileContents(getOutputTestFileName(cuNames[i]));
+				String actual = cus[i].getSource();
+				assertEqualLines(expected, actual);
+			}
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+
+	/******* tests ******************/
+
+	/* Extract Callin Tests */
+	
+	public void testExtractSimpleBeforeCallin() throws Exception {
+		performPullUp_pass(new String[] { "B", "T" }, "m", new String[0], CallinMapping.KIND_BEFORE, false, "B", "R", false);
+	}
+	
+	public void testExtractSimpleReplaceCallin1() throws Exception {
+		performPullUp_pass(new String[] { "B", "T" }, "m", new String[0], CallinMapping.KIND_REPLACE, false, "B", "R", true);
+	}
+	
+	public void testExtractSimpleAfterCallin() throws Exception {
+		performPullUp_pass(new String[] { "B", "T" }, "m", new String[0], CallinMapping.KIND_AFTER, false, "B", "R", false);
+	}
+	
+	public void testExtractSimpleReplaceCallin2() throws Exception {
+		performPullUp_pass(new String[] { "B", "T" }, "m", new String[0], CallinMapping.KIND_REPLACE, false, "B", "R", false);
+	}
+	
+	public void testExtractCallinWithParameter() throws Exception {
+		performPullUp_pass(new String[] { "B", "T" }, "m", new String[] { "I" }, CallinMapping.KIND_BEFORE, false, "B", "R", false);
+	}
+	
+	public void testExtractCallinWithParameterMapping() throws Exception {
+		performPullUp_pass(new String[] { "B", "T" }, "m", new String[] { "I", "I" }, CallinMapping.KIND_BEFORE, false, "B", "R", false);
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/AbstractSelectionTestCase.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/AbstractSelectionTestCase.java
new file mode 100644
index 0000000..91aaa55
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/AbstractSelectionTestCase.java
@@ -0,0 +1,200 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;

+

+/**

+ * @author brcan

+ *

+ */

+import java.io.IOException;

+import java.io.InputStream;

+

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.IProgressMonitor;

+import org.eclipse.core.runtime.NullProgressMonitor;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.JavaCore;

+import org.eclipse.jdt.ui.tests.refactoring.infra.AbstractCUTestCase;

+import org.eclipse.jface.text.ITextSelection;

+import org.eclipse.jface.text.TextSelection;

+import org.eclipse.ltk.core.refactoring.Change;

+import org.eclipse.ltk.core.refactoring.CheckConditionsOperation;

+import org.eclipse.ltk.core.refactoring.IUndoManager;

+import org.eclipse.ltk.core.refactoring.PerformRefactoringOperation;

+import org.eclipse.ltk.core.refactoring.Refactoring;

+import org.eclipse.ltk.core.refactoring.RefactoringCore;

+import org.eclipse.ltk.core.refactoring.RefactoringStatus;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.OTRefactoringTestPlugin;

+

+@SuppressWarnings({ "nls", "restriction" })

+public abstract class AbstractSelectionTestCase extends AbstractCUTestCase

+{

+	public static final String SQUARE_BRACKET_OPEN = "/*[*/";

+	public static final int    SQUARE_BRACKET_OPEN_LENGTH = SQUARE_BRACKET_OPEN.length();

+	public static final String SQUARE_BRACKET_CLOSE =   "/*]*/";

+	public static final int    SQUARE_BRACKET_CLOSE_LENGTH = SQUARE_BRACKET_CLOSE.length();

+	

+	protected static final int VALID_SELECTION     = 1;

+	protected static final int INVALID_SELECTION   = 2;

+	protected static final int COMPARE_WITH_OUTPUT = 3;

+	

+	public AbstractSelectionTestCase(String name)

+	{

+		super(name);

+	}

+

+	protected int[] getSelection(String source)

+	{

+		int start = -1;

+		int end = -1;

+		int includingStart = source.indexOf(SQUARE_BRACKET_OPEN);

+		int excludingStart = source.indexOf(SQUARE_BRACKET_CLOSE);

+		int includingEnd = source.lastIndexOf(SQUARE_BRACKET_CLOSE);

+		int excludingEnd = source.lastIndexOf(SQUARE_BRACKET_OPEN);

+

+		if (includingStart > excludingStart && excludingStart != -1)

+		{

+			includingStart = -1;

+		}

+		else if (excludingStart > includingStart && includingStart != -1)

+		{

+			excludingStart = -1;

+		}

+		

+		if (includingEnd < excludingEnd)

+		{

+			includingEnd = -1;

+		}

+		else if (excludingEnd < includingEnd)

+		{

+			excludingEnd = -1;

+		}

+		

+		if (includingStart != -1)

+		{

+			start = includingStart;

+		}

+		else

+		{

+			start = excludingStart + SQUARE_BRACKET_CLOSE_LENGTH;

+		}

+		

+		if (excludingEnd != -1)

+		{

+			end = excludingEnd;

+		}

+		else

+		{

+			end = includingEnd + SQUARE_BRACKET_CLOSE_LENGTH;

+		}

+		

+		assertTrue("Selection invalid", start >= 0 && end >= 0 && end >= start);

+		

+		int[] result = new int[] { start, end - start }; 

+		// System.out.println("|"+ source.substring(result[0], result[0] + result[1]) + "|");

+		return result;

+	}

+	

+	protected ITextSelection getTextSelection(String source)

+	{

+		int[] s = getSelection(source);

+		return new TextSelection(s[0], s[1]);

+	}

+	

+	protected InputStream getFileInputStream(String fileName) throws IOException

+	{

+		return OTRefactoringTestPlugin.getDefault().getTestResourceStream(fileName);

+	}

+	

+//{ObjectTeams: fixing a JDT-problem: couldn't cope with package paths > 1	

+	protected ICompilationUnit createCU(IPackageFragment pack, String name) throws Exception {

+		name= adaptName(name);

+		return createCU(pack, name, getFileInputStream(myGetFilePath(pack, name)));

+	}

+	

+	protected String myGetFilePath(String path, String name) {

+		return getResourceLocation() + path + "/" + name;

+	}

+	

+	protected String myGetFilePath(IPackageFragment pack, String name) {

+		return myGetFilePath(pack.getElementName().replace('.','/'), name); // <-- the patch: force the package path to use '/'		

+	}

+// SH}

+

+	protected void performTest(

+	        final ICompilationUnit unit,

+	        final Refactoring refactoring,

+	        int mode,

+	        final String out,

+	        boolean doUndo) throws Exception

+    {

+	    IProgressMonitor pm = new NullProgressMonitor();

+		switch (mode)

+		{

+			case VALID_SELECTION:

+				assertTrue(checkPreconditions(refactoring, pm).isOK());

+				break;

+			case INVALID_SELECTION:

+				assertTrue(!checkPreconditions(refactoring, pm).isOK());

+				break;

+			case COMPARE_WITH_OUTPUT:

+				IUndoManager undoManager = RefactoringCore.getUndoManager();

+				undoManager.flush();

+				String original = unit.getSource();

+				

+				PerformRefactoringOperation op = new PerformRefactoringOperation(

+					refactoring, getCheckingStyle());

+				JavaCore.run(op, new NullProgressMonitor());

+				assertTrue("Precondition check failed", !op.getConditionStatus().hasFatalError());

+				assertTrue("Validation check failed", !op.getValidationStatus().hasFatalError());

+				assertNotNull("No Undo", op.getUndoChange());

+				compareSource(unit.getSource(), out);

+				Change undo = op.getUndoChange();

+				assertNotNull("Undo doesn't exist", undo);

+				assertTrue("Undo manager is empty", undoManager.anythingToUndo());

+

+				if (doUndo)

+				{

+					undoManager.performUndo(null, new NullProgressMonitor());

+					assertTrue("Undo manager still has undo", !undoManager.anythingToUndo());

+					assertTrue("Undo manager is empty", undoManager.anythingToRedo());

+					compareSource(original, unit.getSource());

+				}

+				break;		

+		}

+	}

+	

+	protected RefactoringStatus checkPreconditions(

+	        Refactoring refactoring,

+	        IProgressMonitor pm) throws CoreException

+    {

+		CheckConditionsOperation op =

+		    new CheckConditionsOperation(refactoring, getCheckingStyle());

+		op.run(new NullProgressMonitor());

+		return op.getStatus();

+	}

+	

+	protected int getCheckingStyle()

+	{

+		return CheckConditionsOperation.ALL_CONDITIONS;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/AllTests.java
new file mode 100644
index 0000000..44ac71b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/AllTests.java
@@ -0,0 +1,50 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ * 

+ * Runs all OT-specific refactoring tests and corresponding eclipse refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-Extract-Method-Refactoring Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractMethodRefactoringUtilTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod.ExtractTempTests.suite());

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodRefactoringUtilTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodRefactoringUtilTests.java
new file mode 100644
index 0000000..720083b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodRefactoringUtilTests.java
@@ -0,0 +1,388 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;

+

+import java.lang.reflect.Modifier;

+import java.util.ArrayList;

+import java.util.List;

+

+import junit.framework.Test;

+

+import org.eclipse.core.runtime.NullProgressMonitor;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IMethod;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.internal.corext.Corext;

+import org.eclipse.jdt.internal.corext.refactoring.ParameterInfo;

+import org.eclipse.jdt.internal.corext.refactoring.code.ExtractMethodRefactoring;

+import org.eclipse.ltk.core.refactoring.RefactoringStatus;

+import org.eclipse.objectteams.otdt.core.IRoleType;

+import org.eclipse.objectteams.otdt.core.TypeHelper;

+import org.eclipse.objectteams.otdt.internal.refactoring.adaptor.extractmethod.ExtractMethodAmbuguityMsgCreator;

+import org.eclipse.objectteams.otdt.internal.refactoring.adaptor.extractmethod.ExtractMethodOverloadingMsgCreator;

+import org.eclipse.objectteams.otdt.internal.refactoring.corext.base.OTRefactoringStatusCodes;

+import org.eclipse.objectteams.otdt.internal.refactoring.util.RefactoringUtil;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.FileBasedRefactoringTest;

+

+/**

+ * @author brcan

+ * 

+ */

+@SuppressWarnings( { "restriction", "nls" })

+public class ExtractMethodRefactoringUtilTests extends FileBasedRefactoringTest {

+	public static final String SQUARE_BRACKET_OPEN = "/*[*/";

+	public static final int SQUARE_BRACKET_OPEN_LENGTH = SQUARE_BRACKET_OPEN.length();

+	public static final String SQUARE_BRACKET_CLOSE = "/*]*/";

+	public static final int SQUARE_BRACKET_CLOSE_LENGTH = SQUARE_BRACKET_CLOSE.length();

+

+	// Regular classes

+	private IType _a;

+	private IType _b;

+	private IType _c;

+	private IType _q;

+	private IType _s;

+

+	// Team class

+	private IType _t1;

+

+	// Role classes

+	private IRoleType _t2r1;

+	private IRoleType _t3r1;

+	private IRoleType _t3r2;

+

+	private ExtractMethodRefactoring _refactoring;

+

+	public ExtractMethodRefactoringUtilTests(String name) {

+		super(name);

+	}

+

+	public static Test suite() {

+		return new Suite(ExtractMethodRefactoringUtilTests.class);

+	}

+

+	public void setUpSuite() throws Exception {

+		setTestProjectDir("ExtractMethodRefactoringUtil");

+		super.setUpSuite();

+

+		_a = getType(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "A");

+

+		_b = getType(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "B");

+

+		_c = getType(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "C");

+

+		_q = getType(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "Q");

+

+		_s = getType(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "S");

+

+		_t1 = getType(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "T1");

+

+		_t2r1 = getRole(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "T2", "R1");

+

+		_t3r1 = getRole(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "T3", "R1");

+

+		_t3r2 = getRole(getTestProjectDir(), "src", "roleAndBaseHierarchy1", "T3", "R2");

+	}

+

+	protected void setUp() throws Exception {

+		super.setUp();

+	}

+

+	private int[] getSelection(String source) {

+		int start = -1;

+		int end = -1;

+		int includingStart = source.indexOf(SQUARE_BRACKET_OPEN);

+		int excludingStart = source.indexOf(SQUARE_BRACKET_CLOSE);

+		int includingEnd = source.lastIndexOf(SQUARE_BRACKET_CLOSE);

+		int excludingEnd = source.lastIndexOf(SQUARE_BRACKET_OPEN);

+

+		if (includingStart > excludingStart && excludingStart != -1) {

+			includingStart = -1;

+		} else if (excludingStart > includingStart && includingStart != -1) {

+			excludingStart = -1;

+		}

+

+		if (includingEnd < excludingEnd) {

+			includingEnd = -1;

+		} else if (excludingEnd < includingEnd) {

+			excludingEnd = -1;

+		}

+

+		if (includingStart != -1) {

+			start = includingStart;

+		} else {

+			start = excludingStart + SQUARE_BRACKET_CLOSE_LENGTH;

+		}

+

+		if (excludingEnd != -1) {

+			end = excludingEnd;

+		} else {

+			end = includingEnd + SQUARE_BRACKET_CLOSE_LENGTH;

+		}

+

+		assertTrue("Selection invalid", start >= 0 && end >= 0 && end >= start);

+

+		int[] result = new int[] { start, end - start };

+		// System.out.println("|"+ source.substring(result[0], result[0] +

+		// result[1]) + "|");

+		return result;

+	}

+

+	@SuppressWarnings("unchecked")

+	// raw List from ExtractMethodRefactoring.

+	private String[] fetchNewParameterTypes() {

+		List parameterInfos = _refactoring.getParameterInfos();

+		String[] parameterTypes = new String[parameterInfos.size()];

+		for (int i = 0; i < parameterTypes.length; i++)

+			parameterTypes[i] = ((ParameterInfo) parameterInfos.get(i)).getNewTypeName();

+		return parameterTypes;

+	}

+

+	/********** tests **********/

+	// =====================================================================================

+	// Testing overloading

+	// =====================================================================================

+	public void testCheckOverloading1() throws Exception {

+		// focus type -> A

+		ICompilationUnit cu = _a.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("f");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_a, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading2() throws Exception {

+		// focus type -> B

+		ICompilationUnit cu = _b.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("g");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_b, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading3() throws Exception {

+		// focus type -> C

+		ICompilationUnit cu = _c.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("g");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_c, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading4() throws Exception {

+		// focus type -> Q

+		ICompilationUnit cu = _q.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("m");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_q, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading5() throws Exception {

+		// focus type -> S

+		ICompilationUnit cu = _s.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("m");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_s, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading6() throws Exception {

+		// focus type -> T1

+		ICompilationUnit cu = _t1.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("m");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_t1, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading7() throws Exception {

+		// focus type -> T2.R1

+		ICompilationUnit cu = _t2r1.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("m");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_t2r1, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	public void testCheckOverloading8() throws Exception {

+		// focus type -> T3.R2

+		ICompilationUnit cu = _t3r2.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("rm");

+		_refactoring.setVisibility(Modifier.PROTECTED);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_t3r2, true, true, true, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	// checking overloading including hidden (private) methods, because method

+	// bindings can refer to otherwise hidden base methods (decapsulation)

+	/* test overloading of private base method */

+	public void testCheckOverloading9() throws Exception {

+		// focus type -> C

+		ICompilationUnit cu = _c.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("n");

+		_refactoring.setVisibility(Modifier.PRIVATE);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_c, true, true, false, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	/* test overloading of private role method */

+	public void testCheckOverloading10() throws Exception {

+		// focus type -> T3.R2

+		ICompilationUnit cu = _t3r2.getCompilationUnit();

+		int[] selection = getSelection(cu.getSource());

+		_refactoring = new ExtractMethodRefactoring(cu, selection[0], selection[1]);

+		_refactoring.setMethodName("k");

+		_refactoring.setVisibility(Modifier.PRIVATE);

+		_refactoring.checkInitialConditions(new NullProgressMonitor());

+		IMethod[] inheritedMethods = TypeHelper.getInheritedMethods(_t3r2, true, true, false, null);

+		RefactoringStatus expected = RefactoringUtil.addOverloadingWarning(new ExtractMethodOverloadingMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkOverloading(inheritedMethods, _refactoring.getMethodName(), fetchNewParameterTypes(),

+				new ExtractMethodOverloadingMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.OVERLOADING));

+	}

+

+	// =====================================================================================

+	// Testing ambiguity

+	// =====================================================================================

+

+	public void testCheckAmbiguityInRoleMethodSpec1() throws Exception {

+		// check ambiguous role method specifier in callin binding of T2.R1

+		RefactoringStatus expected = RefactoringUtil.addAmbiguityFatalError(null, new ExtractMethodAmbuguityMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkForAmbiguousRoleMethodSpecs(_t2r1, "m", new ExtractMethodAmbuguityMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+	}

+

+	public void testCheckAmbiguityInRoleMethodSpec2() throws Exception {

+		// check ambiguous role method specifier in callin binding of T3.R1

+		RefactoringStatus expected = RefactoringUtil.addAmbiguityFatalError(null, new ExtractMethodAmbuguityMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkForAmbiguousRoleMethodSpecs(_t3r1, "m", new ExtractMethodAmbuguityMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+	}

+

+	public void testCheckAmbiguityInRoleMethodSpec3() throws Exception {

+		// check ambiguous role method specifier in callout binding of T3.R2

+		RefactoringStatus expected = RefactoringUtil.addAmbiguityFatalError(null, new ExtractMethodAmbuguityMsgCreator());

+		RefactoringStatus actual = RefactoringUtil.checkForAmbiguousRoleMethodSpecs(_t3r2, "m", new ExtractMethodAmbuguityMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+	}

+

+	public void testCheckAmbiguityInBaseMethodSpec1() throws Exception {

+		// check ambiguous base method specifier in callin binding of T2.R1

+		RefactoringStatus expected = RefactoringUtil.addAmbiguityFatalError(null, new ExtractMethodAmbuguityMsgCreator());

+		ArrayList<IRoleType> boundRole = new ArrayList<IRoleType>();

+		boundRole.add(_t2r1);

+		RefactoringStatus actual = RefactoringUtil.checkForAmbiguousBaseMethodSpecs(boundRole, "f", "", new ExtractMethodAmbuguityMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+	}

+

+	public void testCheckAmbiguityInBaseMethodSpec2() throws Exception {

+		// check ambiguous base method specifier in callout binding of T3.R2

+		RefactoringStatus expected = RefactoringUtil.addAmbiguityFatalError(null, new ExtractMethodAmbuguityMsgCreator());

+		ArrayList<IRoleType> boundRole = new ArrayList<IRoleType>();

+		boundRole.add(_t3r2);

+		RefactoringStatus actual = RefactoringUtil.checkForAmbiguousBaseMethodSpecs(boundRole, "f", "", new ExtractMethodAmbuguityMsgCreator());

+		assertEquals(expected.getSeverity(), actual.getSeverity());

+		assertNotNull(expected.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+		assertNotNull(actual.getEntryMatchingCode(Corext.getPluginId(), OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER));

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodTestSetup.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodTestSetup.java
new file mode 100644
index 0000000..0c6e9e3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodTestSetup.java
@@ -0,0 +1,149 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;

+

+import java.util.Hashtable;

+

+import junit.extensions.TestSetup;

+import junit.framework.Test;

+

+import org.eclipse.core.resources.IWorkspace;

+import org.eclipse.core.resources.IWorkspaceDescription;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.jdt.core.IJavaProject;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.IPackageFragmentRoot;

+import org.eclipse.jdt.core.JavaCore;

+import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;

+import org.eclipse.jdt.internal.ui.JavaPlugin;

+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTest;

+import org.eclipse.ltk.core.refactoring.RefactoringCore;

+import org.eclipse.objectteams.otdt.ui.tests.util.JavaProjectHelper;

+import org.eclipse.objectteams.otdt.ui.tests.util.TestOptions;

+

+/**

+ * @author brcan

+ */

+@SuppressWarnings({ "nls", "restriction" })

+public class ExtractMethodTestSetup extends TestSetup

+{

+	private IJavaProject _javaProject;

+	private IPackageFragmentRoot _root;

+	private static final String CONTAINER = "src";

+

+//	private IPackageFragment _selectionPackage;

+	

+    private IPackageFragment _teamClassPackage;

+    private IPackageFragment _roleClassPackage;

+	private IPackageFragment _nestedTeamPackage;

+	private IPackageFragment _rolefilePackage;

+	private IPackageFragment _rolefileParentPackage;

+	private IPackageFragment _focusTypePackage;

+	private IPackageFragment _overloadingPackage;

+	

+    public ExtractMethodTestSetup(Test test)

+    {

+        super(test);

+    }

+    

+	public IPackageFragmentRoot getRoot() {

+		return _root;

+	}

+

+    @SuppressWarnings("unchecked")

+	protected void setUp() throws Exception

+    {

+		Hashtable options = TestOptions.getFormatterOptions();

+		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaCore.TAB);

+		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");

+		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");

+		JavaCore.setOptions(options);

+		TestOptions.initializeCodeGenerationOptions();

+		JavaPlugin.getDefault().getCodeTemplateStore().load();		

+		

+		_javaProject = JavaProjectHelper.createOTJavaProject("TestProject", "bin");

+		JavaProjectHelper.addRTJar(_javaProject);

+		_root = JavaProjectHelper.addSourceContainer(_javaProject, CONTAINER);

+		

+		RefactoringCore.getUndoManager().flush();

+		IWorkspace workspace = ResourcesPlugin.getWorkspace();

+		IWorkspaceDescription description = workspace.getDescription();

+		description.setAutoBuilding(false);

+		workspace.setDescription(description);

+

+		//new packages for OT/J tests

+		_teamClassPackage = getRoot().createPackageFragment("team_in", true, null);

+		_roleClassPackage = getRoot().createPackageFragment("role_in", true, null);

+		_rolefilePackage       = getRoot().createPackageFragment("roleFile_in.TeamWithRoleFile", true, null);

+		_rolefileParentPackage = getRoot().createPackageFragment("roleFile_in", true, null);

+		_nestedTeamPackage = getRoot().createPackageFragment("nestedTeam_in", true, null);

+		_focusTypePackage = getRoot().createPackageFragment("focusType_in", true, null);

+		_overloadingPackage = getRoot().createPackageFragment("overloading_in", true, null);

+		

+//		_selectionPackage = getRoot().createPackageFragment("selection", true, null);

+    }

+

+	protected void tearDown() throws Exception

+	{

+		RefactoringTest.performDummySearch(_javaProject);

+		JavaProjectHelper.delete(_javaProject);

+	}

+	

+//	public IPackageFragment getSelectionPackage()

+//	{

+//	    return _selectionPackage;

+//	}

+

+	public IPackageFragment getTeamClassPackage()

+	{

+	    return _teamClassPackage;

+	}

+

+	public IPackageFragment getRoleClassPackage()

+	{

+	    return _roleClassPackage;

+	}

+	

+	public IPackageFragment getNestedTeamPackage()

+	{

+	    return _nestedTeamPackage;

+	}

+

+	public IPackageFragment getRoleFilePackage()

+	{

+	    return _rolefilePackage;

+	}

+

+	public IPackageFragment getRoleFileParentPackage()

+	{

+	    return _rolefileParentPackage;

+	}

+	

+	public IPackageFragment getFocusTypePackage()

+	{

+	    return _focusTypePackage;

+	}

+	

+	public IPackageFragment getOverloadingPackage()

+	{

+	    return _overloadingPackage;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodTests.java
new file mode 100644
index 0000000..c0eb561
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractMethodTests.java
@@ -0,0 +1,480 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;
+
+import java.io.IOException;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.jdt.internal.corext.refactoring.ParameterInfo;
+import org.eclipse.ltk.core.refactoring.CheckConditionsOperation;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.jdt.internal.corext.refactoring.code.ExtractMethodRefactoring;
+
+/**
+ * @author brcan
+ * 
+ */
+@SuppressWarnings({ "nls", "restriction" })
+public class ExtractMethodTests extends AbstractSelectionTestCase
+{
+	private static ExtractMethodTestSetup _testSetup;
+	
+    public ExtractMethodTests(String name)
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+		_testSetup = new ExtractMethodTestSetup(new TestSuite(ExtractMethodTests.class));
+		return _testSetup;
+	}
+
+	protected IPackageFragmentRoot getRoot()
+	{
+		return _testSetup.getRoot();
+	}
+	
+	protected String getResourceLocation()
+	{
+		return "ExtractMethod/";
+	}
+	
+	protected String adaptName(String name)
+	{
+	    if (getName().startsWith("testFocusType"))
+	    {
+	        return super.adaptName(name);
+	    }
+		return name + "_" + getName() + ".java";
+	}	
+	
+//	protected void selectionTest(int startLine, int startColumn, int endLine, int endColumn)
+//		throws Exception
+//	{
+//		ICompilationUnit unit = createCU(getSelectionPackage(), "A");
+//		String source = unit.getSource();
+//		int[] selection = getSelection(source);
+//		ISourceRange expected =
+//		    TextRangeUtil.getSelection(unit, startLine, startColumn, endLine, endColumn);
+//		assertEquals(expected.getOffset(), selection[0]);
+//		assertEquals(expected.getLength(), selection[1]);
+//	}
+//	
+//	private IPackageFragment getSelectionPackage() throws JavaModelException
+//	{
+//		return _testSetup.getSelectionPackage();
+// 	}
+	
+	protected void performTest(
+	        IPackageFragment packageFragment,
+	        String[] ids,
+	        int mode,
+	        String outputFolder) throws Exception
+	{
+		performTest(packageFragment, ids, mode, outputFolder, null, null, 0);
+	}
+	
+	@SuppressWarnings("unchecked")
+	protected void performTest(
+	        IPackageFragment packageFragment,
+	        String[] ids,
+	        int mode,
+	        String outputFolder,
+	        String[] newNames,
+	        int[] newOrder,
+	        int destination) throws Exception
+	{
+	    ICompilationUnit[] compUnits = createCUs(packageFragment, ids);
+		String source = compUnits[0].getSource();
+		int[] selection = getSelection(source);
+		ExtractMethodRefactoring refactoring = new ExtractMethodRefactoring(
+		        compUnits[0],
+		        selection[0],
+		        selection[1]);
+		refactoring.setMethodName("extracted");
+		refactoring.setVisibility(Modifier.PROTECTED);
+		RefactoringStatus status =
+		    refactoring.checkInitialConditions(new NullProgressMonitor());
+		switch (mode)
+		{
+			case VALID_SELECTION:
+				assertTrue(status.isOK());
+				break;
+			case INVALID_SELECTION:
+				if (!status.isOK())
+					return;
+		}
+		List parameters = refactoring.getParameterInfos();
+		if (newNames != null && newNames.length > 0)
+		{
+			for (int idx= 0; idx < newNames.length; idx++)
+			{
+				if (newNames[idx] != null)
+				{
+					((ParameterInfo)parameters.get(idx)).setNewName(newNames[idx]);
+				}
+			}
+		}
+		if (newOrder != null && newOrder.length > 0)
+		{
+			assertTrue(newOrder.length == parameters.size());
+			List current = new ArrayList(parameters);
+			for (int idx= 0; idx < newOrder.length; idx++)
+			{
+				parameters.set(newOrder[idx], current.get(idx));
+			}
+		}
+		refactoring.setDestination(destination);
+		
+		String out = null;
+		switch (mode)
+		{
+			case COMPARE_WITH_OUTPUT:
+			    out = getProofedContent(outputFolder, ids[0]);
+			    break;		
+		}
+		performTest(compUnits[0], refactoring, mode, out, true);
+	}
+	
+    private ICompilationUnit[] createCUs(
+            IPackageFragment packageFragment,
+            String[] ids)
+		throws Exception
+	{
+	    ICompilationUnit[] cus = new ICompilationUnit[ids.length];
+	
+	    for (int idx = 0; idx < ids.length; idx++)
+	    {
+	        Assert.isNotNull(ids[idx]);
+	        cus[idx] = createCU(packageFragment, ids[idx]);
+	    }
+	    return cus;
+	}
+
+	protected int getCheckingStyle()
+	{
+		return CheckConditionsOperation.FINAL_CONDITIONS;
+	}
+
+	/********** tests **********/
+	//=====================================================================================
+	// Testing team classes
+	//=====================================================================================
+
+	//extract method invocation in team
+	public void testTeamclass1() throws Exception
+    {
+	    performTest(
+	            _testSetup.getTeamClassPackage(),
+	            new String[]{"T"},
+	            COMPARE_WITH_OUTPUT,
+	            "team_out");
+    }
+	//extract expression in team 
+	public void testTeamclass2() throws Exception
+    {
+	    performTest(
+	            _testSetup.getTeamClassPackage(),
+	            new String[]{"T"},
+	            COMPARE_WITH_OUTPUT,
+	            "team_out");
+    }
+
+	//=====================================================================================
+	// Testing role classes
+	//=====================================================================================
+
+	//extract method invocation in unbound role
+	public void testRoleclass1() throws Exception
+    {
+	    performTest(
+	            _testSetup.getRoleClassPackage(),
+	            new String[]{"T"},
+	            COMPARE_WITH_OUTPUT,
+	            "role_out");
+    }
+	//extract expression in unbound role
+	public void testRoleclass2() throws Exception
+	{
+	    performTest(
+	            _testSetup.getRoleClassPackage(),
+	            new String[]{"T"},
+	            COMPARE_WITH_OUTPUT,
+	            "role_out");
+	}
+
+	//=====================================================================================
+	// Testing nested teams
+	//=====================================================================================
+
+	/* passing */
+	//extract method invocation in unbound nested team
+	public void testNestedTeam1() throws Exception
+    {
+	    performTest(
+	            _testSetup.getNestedTeamPackage(),
+	            new String[]{"T1"},
+	            COMPARE_WITH_OUTPUT, 
+	            "nestedTeam_out");
+    }
+	//extract method invocation in inner role of unbound nested team
+	public void testNestedTeam2() throws Exception
+    {
+	    performTest(
+	            _testSetup.getNestedTeamPackage(),
+	            new String[]{"T1"},
+	            COMPARE_WITH_OUTPUT, 
+	            "nestedTeam_out");
+    }
+
+	/* failing */
+	//extract method invocation in bound nested team -> ambiguous base method spec
+	public void testNestedTeam3() throws Exception
+    {
+		performTest(
+		        _testSetup.getNestedTeamPackage(),
+		        new String[] {"B", "T1"},
+		        INVALID_SELECTION,
+		        "nestedTeam_out");
+    }
+	//extract method invocation in bound nested team -> ambiguous role method spec
+	public void testNestedTeam4() throws Exception
+    {
+		performTest(
+		        _testSetup.getNestedTeamPackage(),
+		        new String[] {"T1", "B"},
+		        INVALID_SELECTION,
+		        "nestedTeam_out");
+    }
+	//extract method invocation in bound inner role of nested team ->
+	//ambiguous base method spec 
+	public void testNestedTeam5() throws Exception
+    {
+		performTest(
+		        _testSetup.getNestedTeamPackage(),
+		        new String[] {"B", "T1"},
+		        INVALID_SELECTION,
+		        "nestedTeam_out");
+    }
+	//extract method invocation in bound inner role of nested team ->
+	//ambiguous role method spec 
+	public void testNestedTeam6() throws Exception
+    {
+		performTest(
+		        _testSetup.getNestedTeamPackage(),
+		        new String[] {"T1", "B"},
+		        INVALID_SELECTION,
+		        "nestedTeam_out");
+    }
+	
+	//=====================================================================================
+	// Testing role files
+	//=====================================================================================
+
+	//extract method invocation in role file (unbound role)
+	public void testRoleFile1() throws Exception
+	{
+		establishTeamCU("TeamWithRoleFile.java");
+	    performTest(
+	            _testSetup.getRoleFilePackage(),
+	            new String[]{"R"},
+			    COMPARE_WITH_OUTPUT,
+			    "roleFile_out/TeamWithRoleFile");
+
+	}
+
+	//extract expression in role file (unbound role)
+	public void testRoleFile2() throws Exception
+	{
+		establishTeamCU("TeamWithRoleFile.java");
+	    performTest(
+	            _testSetup.getRoleFilePackage(),
+	            new String[]{"R"},
+	            COMPARE_WITH_OUTPUT,
+	    		"roleFile_out/TeamWithRoleFile");
+	}
+
+	ICompilationUnit teamCU = null;
+
+	private void establishTeamCU(String teamFileName) throws Exception, IOException {
+		if (teamCU != null) return;
+		IPackageFragment pack = _testSetup.getRoleFileParentPackage();
+		teamCU = createCU(pack, teamFileName, getFileInputStream(myGetFilePath(pack, teamFileName)));
+	}
+	//	=====================================================================================
+	// 	Testing overloading and/or ambiguity for different focus types
+	//	=====================================================================================	
+
+	//focus implicit role hierarchy
+	public void testFocusTypeIsSuperroleInRoleHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"T1", "A", "B", "C"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+	
+	public void testFocusTypeIsMiddleRoleInRoleHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"T2", "T1", "A", "B", "C"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+
+	public void testFocusTypeIsLowestRoleInRoleHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"T3", "T2", "T1", "A", "B", "C"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+
+	//focus base hierarchy
+	public void testFocusTypeIsSuperBasetypeInBaseHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"A", "B", "C", "T1", "T2", "T3"},
+		        INVALID_SELECTION,
+		        "focusType_out");        
+    }
+	
+	public void testFocusTypeIsMiddleBasetypeInBaseHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"B", "A", "C", "T1", "T2", "T3"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+	
+	public void testFocusTypeIsLowestBasetypeInBaseHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"C", "B", "A", "T1", "T2", "T3"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+		
+	//focus team hierarchy
+	public void testFocusTypeIsSuperteamInTeamHierachy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"FocusTeam1"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+	
+	public void testFocusTypeIsMiddleTeamInTeamHierachy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"FocusTeam2", "FocusTeam1"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+
+	public void testFocusTypeIsLowestTeamInTeamHierarchy() throws Exception
+    {
+		performTest(
+		        _testSetup.getFocusTypePackage(),
+		        new String[] {"FocusTeam3", "FocusTeam2", "FocusTeam1"},
+		        INVALID_SELECTION,
+		        "focusType_out");
+    }
+
+	// role is a indirect subclass of target class, explicit inheritance only, short methodSpec
+	public void test20() throws Exception
+	{
+		performTest(
+		        _testSetup.getOverloadingPackage(),
+		        new String[] {"A", "B", "Base1", "Team1"},
+		        INVALID_SELECTION,
+		        "overloading_out");
+	}
+	
+	// role is a indirect subclass of target class, explicit + implicit inheritance, short methodSpec
+	public void test21() throws Exception
+	{
+		performTest(
+		        _testSetup.getOverloadingPackage(),
+		        new String[] {"A", "B", "Base1", "Team1", "Team2"},
+		        INVALID_SELECTION,
+		        "overloading_out");
+	}
+	
+	// role is a indirect subclass of target class, explicit + implicit inheritance, long methodSpec
+	public void test22() throws Exception
+	{
+		performTest(
+		        _testSetup.getOverloadingPackage(),
+		        new String[] {"A", "B", "Base1", "Team1", "Team2"},
+		        COMPARE_WITH_OUTPUT,
+		        "overloading_out");
+	}
+	
+	// bound base class is target class, short methodSpec 
+	public void test23() throws Exception
+	{
+		performTest(
+		        _testSetup.getOverloadingPackage(),
+		        new String[] {"A", "Team1"},
+		        INVALID_SELECTION,
+		        "overloading_out");
+	}
+	
+	// bound base class is direct/indirect subclass of target class, short methodSpec
+	public void test24() throws Exception
+	{
+		performTest(
+		        _testSetup.getOverloadingPackage(),
+		        new String[] {"A", "Base1", "Team1"},
+		        INVALID_SELECTION,
+		        "overloading_out");
+	}
+	
+	// base class is subclass of target class, long methodSpec
+	public void test25() throws Exception
+	{
+		performTest(
+		        _testSetup.getOverloadingPackage(),
+		        new String[] {"A", "Base1", "Team1"},
+		        COMPARE_WITH_OUTPUT,
+		        "overloading_out");
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractTempTestSetup.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractTempTestSetup.java
new file mode 100644
index 0000000..0fe22a0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractTempTestSetup.java
@@ -0,0 +1,96 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;

+

+import java.util.Hashtable;

+

+import junit.extensions.TestSetup;

+import junit.framework.Test;

+

+import org.eclipse.core.resources.IWorkspace;

+import org.eclipse.core.resources.IWorkspaceDescription;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.jdt.core.IJavaProject;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.IPackageFragmentRoot;

+import org.eclipse.jdt.core.JavaCore;

+import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;

+import org.eclipse.jdt.internal.ui.JavaPlugin;

+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTest;

+import org.eclipse.ltk.core.refactoring.RefactoringCore;

+import org.eclipse.objectteams.otdt.ui.tests.util.JavaProjectHelper;

+import org.eclipse.objectteams.otdt.ui.tests.util.TestOptions;

+

+/**

+ * @author stephan

+ */

+public class ExtractTempTestSetup extends TestSetup

+{

+	private IJavaProject _javaProject;

+	private IPackageFragmentRoot _root;

+	private static final String CONTAINER = "src";

+

+	private IPackageFragment _statementsPackage;

+

+    public ExtractTempTestSetup(Test test)

+    {

+        super(test);

+    }

+    

+	public IPackageFragmentRoot getRoot() {

+		return _root;

+	}

+

+    protected void setUp() throws Exception

+    {

+		Hashtable options = TestOptions.getFormatterOptions();

+		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaCore.TAB);

+		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");

+		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");

+		JavaCore.setOptions(options);

+		TestOptions.initializeCodeGenerationOptions();

+		JavaPlugin.getDefault().getCodeTemplateStore().load();		

+		

+		_javaProject = JavaProjectHelper.createOTJavaProject("TestProject", "bin");

+		JavaProjectHelper.addRTJar(_javaProject);

+		_root = JavaProjectHelper.addSourceContainer(_javaProject, CONTAINER);

+		

+		RefactoringCore.getUndoManager().flush();

+		IWorkspace workspace = ResourcesPlugin.getWorkspace();

+		IWorkspaceDescription description = workspace.getDescription();

+		description.setAutoBuilding(false);

+		workspace.setDescription(description);

+

+		//new packages for OT/J tests

+		_statementsPackage = getRoot().createPackageFragment("statements_in", true, null);

+    }

+

+	protected void tearDown() throws Exception

+	{

+		RefactoringTest.performDummySearch(_javaProject);

+		JavaProjectHelper.delete(_javaProject);

+	}

+	

+	public IPackageFragment getStatementsPackage()

+	{

+	    return _statementsPackage;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractTempTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractTempTests.java
new file mode 100644
index 0000000..596ecb3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/extractmethod/ExtractTempTests.java
@@ -0,0 +1,209 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.extractmethod;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.internal.corext.refactoring.code.ExtractTempRefactoring;
+import org.eclipse.jdt.ui.tests.refactoring.infra.TextRangeUtil;
+import org.eclipse.ltk.core.refactoring.CheckConditionsOperation;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+
+/**
+ * @author stephan
+ * 
+ */
+@SuppressWarnings("restriction")
+public class ExtractTempTests extends AbstractSelectionTestCase
+{
+	private static ExtractTempTestSetup _testSetup;
+
+    public ExtractTempTests(String name)
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+		_testSetup = new ExtractTempTestSetup(new TestSuite(ExtractTempTests.class));
+		return _testSetup;
+	}
+
+	protected IPackageFragmentRoot getRoot()
+	{
+		return _testSetup.getRoot();
+	}
+	
+	protected String getResourceLocation()
+	{
+		return "ExtractTemp/";
+	}
+	
+	protected String adaptName(String name)
+	{
+	    if (getName().startsWith("testFocusType"))
+	    {
+	        return super.adaptName(name);
+	    }
+		return name + "_" + getName() + ".java";
+	}	
+	
+	protected void performTest(
+	        int startLine,
+	        int startColumn,
+	        int endLine,
+	        int endColumn,
+	        boolean declareFinal,
+	        String outputFolder) throws Exception
+	{
+		performTest(_testSetup.getStatementsPackage(),
+					new String[]{"T"},
+					startLine, 
+					startColumn, endLine, endColumn, 
+					COMPARE_WITH_OUTPUT, declareFinal, 
+					outputFolder);
+	}
+	
+	protected void performTest(
+	        IPackageFragment packageFragment,
+	        String[] ids,
+	        int startLine,
+	        int startColumn,
+	        int endLine,
+	        int endColumn,
+	        int mode,
+	        String outputFolder) throws Exception
+	{
+		performTest(packageFragment, ids, startLine, startColumn, endLine, endColumn, mode, false, outputFolder);
+	}
+	
+	protected void performTest(
+	        IPackageFragment packageFragment,
+	        String[] ids,
+	        int startLine,
+	        int startColumn,
+	        int endLine,
+	        int endColumn,
+	        int mode,
+	        boolean declareFinal,
+	        String outputFolder) throws Exception
+	{
+	    ICompilationUnit[] compUnits = createCUs(packageFragment, ids);
+		ISourceRange selection= TextRangeUtil.getSelection(compUnits[0], startLine, startColumn, endLine, endColumn);
+		ExtractTempRefactoring refactoring = new ExtractTempRefactoring(
+		        compUnits[0],
+		        selection.getOffset(),
+		        selection.getLength());
+		refactoring.setTempName("extracted");
+		refactoring.setDeclareFinal(declareFinal);
+		RefactoringStatus status =
+		    refactoring.checkInitialConditions(new NullProgressMonitor());
+		switch (mode)
+		{
+			case VALID_SELECTION:
+				assertTrue(status.isOK());
+				break;
+			case INVALID_SELECTION:
+				if (!status.isOK())
+					return;
+		}
+		
+		String out = null;
+		switch (mode)
+		{
+			case COMPARE_WITH_OUTPUT:
+			    out = getProofedContent(outputFolder, ids[0]);
+			    break;		
+		}
+		performTest(compUnits[0], refactoring, mode, out, true);
+	}
+	
+    private ICompilationUnit[] createCUs(
+            IPackageFragment packageFragment,
+            String[] ids)
+		throws Exception
+	{
+	    ICompilationUnit[] cus = new ICompilationUnit[ids.length];
+	
+	    for (int idx = 0; idx < ids.length; idx++)
+	    {
+	        Assert.isNotNull(ids[idx]);
+	        cus[idx] = createCU(packageFragment, ids[idx]);
+	    }
+	    return cus;
+	}
+
+	protected int getCheckingStyle()
+	{
+		return CheckConditionsOperation.FINAL_CONDITIONS;
+	}
+
+	/********** tests **********/
+	//=====================================================================================
+	// Testing within statement
+	//=====================================================================================
+
+	//extract team instantiation expression "new T_x()" from within.team_expression
+	public void testWithin1() throws Exception
+    {
+	    performTest(9, 16, 9, 35,
+	    			false,
+	            	"statements_out");
+    }
+	// body is single statement instead of block
+	public void testWithin2() throws Exception
+    {
+	    performTest(9, 16, 9, 35,
+	            	false,
+	            	"statements_out");
+    }
+	
+	// two element path, extracted is a dependent type
+	public void testTypeAnchor1() throws Exception 
+	{
+		performTest(15,13,15,18,
+					true,
+					"statements_out");
+	}
+
+	// three element path, extracted is not a dependent type
+	public void testTypeAnchor2() throws Exception 
+	{
+		performTest(21,13,21,20,
+					true,
+					"statements_out");
+	}
+
+	// three element path, extracted is a dependent type
+	public void testTypeAnchor3() throws Exception 
+	{
+		performTest(19,13,19,20,
+					true,
+					"statements_out");
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/inlinecallin/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/inlinecallin/AllTests.java
new file mode 100644
index 0000000..b7e071e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/inlinecallin/AllTests.java
@@ -0,0 +1,44 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.inlinecallin;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-InlineCallin-Refactoring Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.inlinecallin.InlineCallinTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/inlinecallin/InlineCallinTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/inlinecallin/InlineCallinTests.java
new file mode 100644
index 0000000..7507f35
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/inlinecallin/InlineCallinTests.java
@@ -0,0 +1,345 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.inlinecallin;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.objectteams.otdt.core.ICallinMapping;
+import org.eclipse.objectteams.otdt.core.IMethodMapping;
+import org.eclipse.objectteams.otdt.core.IRoleType;
+import org.eclipse.objectteams.otdt.core.OTModelManager;
+import org.eclipse.objectteams.otdt.internal.core.CallinMapping;
+import org.eclipse.objectteams.otdt.internal.refactoring.otrefactorings.inlinecallin.InlineCallinRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * 
+ * @author Johannes Gebauer
+ */
+@SuppressWarnings("restriction")
+public class InlineCallinTests extends RefactoringTest {
+	private static final String REFACTORING_PATH = "InlineCallin/";
+
+	public InlineCallinTests(String name) {
+		super(name);
+	}
+
+	public static Test suite() {
+		return new MySetup(new TestSuite(InlineCallinTests.class));
+	}
+
+	public static Test setUpTest(Test test) {
+		return new MySetup(test);
+	}
+
+	protected String getRefactoringPath() {
+		return REFACTORING_PATH;
+	}
+
+	private ICompilationUnit[] createCUs(String[] cuNames) throws Exception {
+		ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+
+		for (int idx = 0; idx < cuNames.length; idx++) {
+			Assert.isNotNull(cuNames[idx]);
+			cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+		}
+		return cus;
+	}
+
+	private static InlineCallinRefactoring createInlineCallinRefactoring(IMethod roleMethod, ICallinMapping[] callinMappings, IMethod[] baseMethods)
+			throws JavaModelException {
+		IJavaProject project = null;
+		if (callinMappings[0] != null) {
+			project = callinMappings[0].getJavaProject();
+			InlineCallinRefactoring refactoring = new InlineCallinRefactoring(roleMethod, callinMappings, baseMethods);
+			return refactoring;
+		}
+		return null;
+	}
+
+	/**
+	 * The <code>ICompilationUnit</code> containing the role that defines the
+	 * <code>ICallinMapping</code> at position 0 and its base at position 1.
+	 * 
+	 */
+	private void performInlineCallin_pass(String[] cuNames, String roleMethodName, String[] roleMethodSignature, String[] baseMethodNames, String[][] baseMethodSignatures,
+			int[] mappingKinds, boolean deleteRoleMethod, String roleName, String baseName) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType roleType = getType(cus[0], roleName);
+			IType baseType = getType(cus[1], baseName);
+
+			IMethod roleMethod = roleType.getMethod(roleMethodName, roleMethodSignature);
+			assertTrue("role method " + roleMethod.getElementName() + " does not exist", roleMethod.exists());
+
+			IMethod[] baseMethods = new IMethod[baseMethodNames.length];
+			for (int i = 0; i < baseMethods.length; i++) {
+				baseMethods[i] = baseType.getMethod(baseMethodNames[i], baseMethodSignatures[i]);
+				assertTrue("base method " + baseMethods[i].getElementName() + " does not exist", baseMethods[i].exists());
+
+			}
+			
+			ICallinMapping[] mappings = new ICallinMapping[baseMethodNames.length];
+			for (int i = 0; i < mappings.length; i++) {
+				mappings[i] = getCallinMethodMapping(roleType, roleMethod, baseMethods[i], mappingKinds[i]);
+				assertNotNull("the described callin method mapping does not exist", mappings[i]);
+			}
+
+			InlineCallinRefactoring ref = createInlineCallinRefactoring(roleMethod, mappings, baseMethods);
+
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+
+			ref.setDeleteRoleMethod(deleteRoleMethod);
+	
+			RefactoringStatus checkInputResult = ref.checkFinalConditions(new NullProgressMonitor());
+			assertTrue("precondition was supposed to pass", !checkInputResult.hasError());
+			performChange(ref, false);
+
+			for (int i = 0; i < cus.length; i++) {
+				String expected = getFileContents(getOutputTestFileName(cuNames[i]));
+				String actual = cus[i].getSource();
+				assertEqualLines(expected, actual);
+			}
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+	
+	/**
+	 * The <code>ICompilationUnit</code> containing the role that defines the
+	 * <code>ICallinMapping</code> at position 0 and its base at position 1.
+	 * 
+	 */
+	private void performInlineCallin_failing(String[] cuNames, String roleMethodName, String[] roleMethodSignature, String[] baseMethodNames,
+			String[][] baseMethodSignatures, int[] mappingKinds, boolean deleteRoleMethod, String roleName, String baseName) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType roleType = getType(cus[0], roleName);
+			IType baseType = getType(cus[1], baseName);
+
+			IMethod roleMethod = roleType.getMethod(roleMethodName, roleMethodSignature);
+			assertTrue("role method " + roleMethod.getElementName() + " does not exist", roleMethod.exists());
+
+			IMethod[] baseMethods = new IMethod[baseMethodNames.length];
+			for (int i = 0; i < baseMethods.length; i++) {
+				baseMethods[i] = baseType.getMethod(baseMethodNames[i], baseMethodSignatures[i]);
+				assertTrue("base method " + baseMethods[i].getElementName() + " does not exist", baseMethods[i].exists());
+
+			}
+
+			ICallinMapping[] mappings = new ICallinMapping[baseMethodNames.length];
+			for (int i = 0; i < mappings.length; i++) {
+				mappings[i] = getCallinMethodMapping(roleType, roleMethod, baseMethods[i], mappingKinds[i]);
+				assertNotNull("the described callin method mapping does not exist", mappings[i]);
+			}
+
+			InlineCallinRefactoring ref = createInlineCallinRefactoring(roleMethod, mappings, baseMethods);
+
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+
+			ref.setDeleteRoleMethod(deleteRoleMethod);
+			
+			RefactoringStatus result = performRefactoring(ref);
+			assertNotNull("precondition was supposed to fail.", result);
+			assertTrue("precondition was supposed to fail.", !result.isOK());
+			assertNotNull("precondition result is expected to contain an error.", result.getEntryMatchingSeverity(RefactoringStatus.ERROR));
+			
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+
+	private ICallinMapping getCallinMethodMapping(IType roleType, IMethod roleMethod, IMethod baseMethod, int mappingKind) throws JavaModelException {
+		IRoleType role = (IRoleType) OTModelManager.getOTElement(roleType);
+		assertNotNull("type " + roleType.getElementName() + " is not a role", role);
+		
+		IMethodMapping[] mappings = role.getMethodMappings();
+		
+		for (int i = 0; i < mappings.length; i++) {
+			if (mappings[i] instanceof ICallinMapping) {
+				ICallinMapping mapping = (ICallinMapping) mappings[i];
+				
+				for (int j = 0; j < mapping.getBoundBaseMethods().length; j++) {
+					IMethod roleMethod2 = mapping.getRoleMethod();
+					IMethod baseMethod2 = mapping.getBoundBaseMethods()[j];
+					if (roleMethod2.equals(roleMethod) && baseMethod2.equals(baseMethod) && mapping.getCallinKind() == mappingKind) {
+						return mapping;
+					}
+				}
+			}
+		}
+		return null;
+	}
+	
+
+	/******* tests ******************/
+
+	/* Inline Callin Tests */
+	
+	public void testSimpleBeforeCallin() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] }, new int[] { CallinMapping.KIND_BEFORE }, false, "R", "B");
+	}
+
+	public void testSimpleAfterCallin() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+
+	public void testSimpleReplaceCallin() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] }, new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+	
+	public void testAfterCallinWithReturn() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}	
+	
+	public void testReplaceCallinResultTunneling1() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+
+	public void testReplaceCallinResultTunneling2() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] }, new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+		
+	public void testReplaceCallinWithReturn() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] }, new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+		
+	public void testDifferentParamNames() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[] { "I" }, new String[] { "m" }, new String[][] { new String[] { "I" } }, new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}	
+	
+	public void testDifferentParamLength() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[] { "I" }, new String[] { "m" }, new String[][] { new String[] { "I", "QString;" } }, new int[] { CallinMapping.KIND_REPLACE }, false, "R",
+				"B");
+	}	
+	
+	public void testSimpleParameterMapping() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[] { "I" }, new String[] { "m" }, new String[][] { new String[] { "I", "I" } },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+
+	public void testReplaceWithParameterMapping() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[] { "I" }, new String[] { "m" }, new String[][] { new String[] { "I", "I" } },
+				new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+		
+	public void testReplaceCallinWithMultipleReturns() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+	
+	public void testReplaceCallinWithParameter() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[] { "I", "QString;" }, new String[] { "m" }, new String[][] { new String[] { "I", "QString;" } }, new int[] { CallinMapping.KIND_REPLACE },
+				false, "R", "B");
+	}
+	
+	public void testCallinMappingWithSignature() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+	
+	public void testMultipleBaseMethodCallin() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+	
+	public void testRoleMethodReferencesCallout() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+	
+	public void testRoleMethodReferencesCalloutToFieldGet() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+	
+	public void testRoleMethodReferencesCalloutToFieldSet() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+	
+	public void testParameterTunneling1() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[] { "I" } }, new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}	
+	
+	public void testParameterTunneling2() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[] { "I" } }, new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}	
+	
+	public void testInlineMultipleCallins() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m1", "m2" }, new String[][] { new String[0], new String[0] },
+				new int[] { CallinMapping.KIND_AFTER, CallinMapping.KIND_AFTER }, false, "R", "B");
+	}
+	
+	public void testDeleteRoleMethod() throws Exception {
+		performInlineCallin_pass(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_REPLACE }, true, "R", "B");
+	}
+	
+	public void testDeleteReferencedRoleMethod() throws Exception {
+		performInlineCallin_failing(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_BEFORE }, true, "R", "B");
+	}
+	
+	public void testInlineBoundCallin1() throws Exception {
+		performInlineCallin_failing(new String[] { "T1", "B", "T2" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+	
+	public void testInlineBoundCallin2() throws Exception {
+		performInlineCallin_failing(new String[] { "T1", "B", "T2" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_REPLACE }, false, "R", "B");
+	}
+	
+	public void testDependencyToRole1() throws Exception {
+		performInlineCallin_failing(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_BEFORE }, false, "R", "B");
+	}
+	
+	public void testDependencyToRole2() throws Exception {
+		performInlineCallin_failing(new String[] { "T", "B" }, "n", new String[0], new String[] { "m" }, new String[][] { new String[0] },
+				new int[] { CallinMapping.KIND_BEFORE }, false, "R", "B");
+	}
+	
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java
new file mode 100644
index 0000000..f99b76b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java
@@ -0,0 +1,50 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.move;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ * 

+ * Runs all OT-specific refactoring tests and corresponding eclipse refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-Move-Refactoring Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveInstanceMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveStaticMethodTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveInstanceMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveInstanceMethodTests.java
new file mode 100644
index 0000000..70b6842
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveInstanceMethodTests.java
@@ -0,0 +1,696 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.move;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+import org.eclipse.core.runtime.Assert;

+import org.eclipse.core.runtime.NullProgressMonitor;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IJavaElement;

+import org.eclipse.jdt.core.IMethod;

+import org.eclipse.jdt.core.ISourceRange;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.core.dom.IVariableBinding;

+import org.eclipse.jdt.internal.corext.refactoring.structure.MoveInstanceMethodProcessor;

+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;

+import org.eclipse.jdt.ui.tests.refactoring.infra.TextRangeUtil;

+import org.eclipse.ltk.core.refactoring.Refactoring;

+import org.eclipse.ltk.core.refactoring.RefactoringStatus;

+import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring;

+import org.eclipse.objectteams.otdt.internal.refactoring.corext.base.OTRefactoringStatusCodes;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;

+

+/**

+ * @author brcan

+ *  

+ */

+@SuppressWarnings({ "restriction", "nls" })

+public class MoveInstanceMethodTests extends RefactoringTest

+{

+    private static final String REFACTORING_PATH = "MoveInstanceMethod/";

+

+    private static final int PARAMETER = 0;

+    private static final int FIELD = 1;

+

+    private boolean toSucceed;

+

+    public MoveInstanceMethodTests(String name)

+    {

+        super(name);

+    }

+

+    public static Test suite()

+    {

+        if (false)

+        {

+            TestSuite suite = new TestSuite(MoveInstanceMethodTests.class.getName());

+            suite.addTest(new MoveInstanceMethodTests("testRoleclass1"));

+	        return new MySetup(suite);

+        }

+        return new MySetup(new TestSuite(MoveInstanceMethodTests.class));

+    }

+

+    protected String getRefactoringPath()

+    {

+        return REFACTORING_PATH + successPath();

+    }

+

+    private String successPath()

+    {

+        return toSucceed ? "/canMove/" : "/cannotMove/";

+    }

+

+    private void performAndCheckSelectedCU_passing(

+            String[] cuQNames, String selectionCuQName,

+            int startLine, int startColumn, int endLine, int endColumn,

+            int newReceiverType, String newReceiverName,

+            boolean inlineDelegator, boolean removeDelegator, boolean expectWarning)

+    	throws Exception

+    {

+        int selectionCuIndex = firstIndexOf(selectionCuQName, cuQNames);

+        Assert.isTrue(selectionCuIndex != -1,

+                       "parameter selectionCuQName must match some String in cuQNames.");

+        performRefactoring_passing(cuQNames, selectionCuIndex, startLine, startColumn, endLine,

+                endColumn, newReceiverType, newReceiverName, null,

+                inlineDelegator, removeDelegator, expectWarning);

+    }

+

+    private int firstIndexOf(String one, String[] others)

+    {

+        for (int idx = 0; idx < others.length; idx++)

+        {

+            if (one == null && others[idx] == null || one.equals(others[idx]))

+            {

+                return idx;

+            }

+        }

+        return -1;

+    }

+

+    private void performRefactoring_passing(

+            String[] cuQNames, int selectionCuIndex,

+            int startLine, int startColumn, int endLine, int endColumn,

+            int newReceiverType, String newReceiverName, String newMethodName,

+            boolean inlineDelegator, boolean removeDelegator, boolean expectWarning)

+    	throws Exception

+    {

+        Assert.isTrue(0 <= selectionCuIndex

+                && selectionCuIndex < cuQNames.length);

+

+        toSucceed = true;

+

+        ICompilationUnit[] cus = createCUs(cuQNames);

+        ICompilationUnit selectionCu = cus[selectionCuIndex];

+

+        ISourceRange selection = TextRangeUtil.getSelection(selectionCu,

+                startLine, startColumn, endLine, endColumn);

+        IMethod method = getMethod(selectionCu, selection);

+        assertNotNull(method);

+        MoveInstanceMethodProcessor refProc = new MoveInstanceMethodProcessor(

+		        								method,

+		        								JavaPreferencesSettings.getCodeGenerationSettings(selectionCu.getJavaProject()));

+   		Refactoring ref= new MoveRefactoring(refProc);

+

+		assertNotNull("refactoring should be created", ref);

+		RefactoringStatus preconditionResult= ref

+			.checkInitialConditions(new NullProgressMonitor());

+

+		assertTrue("activation was supposed to be successful",

+			preconditionResult.isOK());

+

+        chooseNewReceiver(refProc, newReceiverType, newReceiverName);

+

+        refProc.setInlineDelegator(inlineDelegator);

+		refProc.setRemoveDelegator(removeDelegator);

+		refProc.setDeprecateDelegates(false);

+        if (newMethodName != null)

+        {

+            refProc.setMethodName(newMethodName);

+        }

+        preconditionResult.merge(ref.checkFinalConditions(new NullProgressMonitor()));

+        if (!expectWarning) {

+	        assertTrue("precondition was supposed to pass", preconditionResult

+	                .isOK());

+	

+	        assertFalse("no warnings expected", preconditionResult.hasWarning());

+        } else {

+        	assertTrue("warning expected", preconditionResult.hasWarning());

+        }

+        

+        performChange(ref, false);

+        for (int idx = 0; idx < cus.length; idx++)

+        {

+            String outputTestFileName = getOutputTestFileName(getSimpleName(cuQNames[idx]));

+            assertEqualLines("Incorrect inline in " + outputTestFileName,

+                    getFileContents(outputTestFileName), cus[idx].getSource());

+        }

+    }

+

+	private void performAndCheckSelectedCU_failing(

+	        String[] cuQNames, String selectionCuQName,

+            int startLine, int startColumn, int endLine, int endColumn,

+            int newReceiverType, String newReceiverName,

+            boolean inlineDelegator, boolean removeDelegator, int errorCode)

+		throws Exception

+    {

+        int selectionCuIndex = firstIndexOf(selectionCuQName, cuQNames);

+        Assert.isTrue(selectionCuIndex != -1,

+                       "parameter selectionCuQName must match some String in cuQNames.");

+        performRefactoring_failing(cuQNames, selectionCuIndex, startLine, startColumn,

+                endLine, endColumn, newReceiverType, newReceiverName, 

+                null, inlineDelegator, removeDelegator, errorCode);

+    }

+

+	private void performRefactoring_failing(

+	        String[] cuQNames, int selectionCuIndex,

+            int startLine, int startColumn, int endLine, int endColumn,

+            int newReceiverType, String newReceiverName, String newMethodName,

+            boolean inlineDelegator, boolean removeDelegator, int errorCode)

+		throws Exception

+    {

+        Assert.isTrue(0 <= selectionCuIndex

+                && selectionCuIndex < cuQNames.length);

+

+        toSucceed = false;

+

+        ICompilationUnit[] cus = createCUs(cuQNames);

+        ICompilationUnit selectionCu = cus[selectionCuIndex];

+

+        ISourceRange selection = TextRangeUtil.getSelection(selectionCu,

+                startLine, startColumn, endLine, endColumn);

+        IMethod method = getMethod(selectionCu, selection);

+        assertNotNull(method);

+        MoveInstanceMethodProcessor refProc = new MoveInstanceMethodProcessor(

+									                    method,

+									                    JavaPreferencesSettings.getCodeGenerationSettings(selectionCu.getJavaProject()));

+   		Refactoring ref= new MoveRefactoring(refProc);

+		if (ref == null)

+        {

+            assertTrue(errorCode != 0);

+        }

+        else

+        {

+			RefactoringStatus result= ref.checkInitialConditions(

+										   new NullProgressMonitor());

+	

+	        if (!result.isOK())

+	        {

+	            assertEquals(errorCode, result.getEntryMatchingSeverity(

+	                    RefactoringStatus.ERROR).getCode());

+	            return;

+	        }

+	        else

+	        {

+	            chooseNewReceiver(refProc, newReceiverType, newReceiverName);

+	

+	            refProc.setInlineDelegator(inlineDelegator);

+	            refProc.setRemoveDelegator(removeDelegator);

+	            refProc.setDeprecateDelegates(false);

+	            if (newMethodName != null)

+	                refProc.setMethodName(newMethodName);

+	

+	            result.merge(ref

+	            		.checkFinalConditions(new NullProgressMonitor()));

+	

+	            assertTrue("precondition checking is expected to fail.", !result.isOK());

+	            assertNotNull("precondition result is expected to contain an error.", result.getEntryMatchingSeverity(RefactoringStatus.ERROR));

+	            assertEquals(errorCode, result.getEntryMatchingSeverity(

+	                    RefactoringStatus.ERROR).getCode());

+	        }

+        }

+    }	

+

+	private void performConditionChecking_warnings(

+	        String[] cuQNames, String selectionCuQName,

+            int startLine, int startColumn, int endLine, int endColumn,

+            int newReceiverType, String newReceiverName, String newMethodName,

+            boolean inlineDelegator, boolean removeDelegator, int errorCode)

+		throws Exception

+    {

+        int selectionCuIndex = firstIndexOf(selectionCuQName, cuQNames);

+        Assert.isTrue(selectionCuIndex != -1,

+                       "parameter selectionCuQName must match some String in cuQNames.");

+        Assert.isTrue(0 <= selectionCuIndex

+                && selectionCuIndex < cuQNames.length);

+

+        toSucceed = true;

+

+        ICompilationUnit[] cus = createCUs(cuQNames);

+        ICompilationUnit selectionCu = cus[selectionCuIndex];

+

+        ISourceRange selection = TextRangeUtil.getSelection(selectionCu,

+                startLine, startColumn, endLine, endColumn);

+        IMethod method = getMethod(selectionCu, selection);

+        assertNotNull(method);

+        MoveInstanceMethodProcessor refProc= new MoveInstanceMethodProcessor(

+									                method,

+									                JavaPreferencesSettings.getCodeGenerationSettings(selectionCu.getJavaProject()));

+        Refactoring ref = new MoveRefactoring(refProc);

+        if (ref == null)

+        {

+            assertTrue(errorCode != 0);

+        }

+        else

+        {

+            RefactoringStatus result = ref.checkInitialConditions(

+                    new NullProgressMonitor());

+	        if (!result.isOK())

+	        {

+	            assertEquals(errorCode, result.getEntryMatchingSeverity(

+	                    RefactoringStatus.ERROR).getCode());

+	            return;

+	        }

+	        else

+	        {

+	            chooseNewReceiver(refProc, newReceiverType, newReceiverName);

+	

+	            refProc.setInlineDelegator(inlineDelegator);

+	            refProc.setRemoveDelegator(removeDelegator);

+	            refProc.setDeprecateDelegates(false);

+	            if (newMethodName != null)

+	                refProc.setMethodName(newMethodName);

+	

+	            result.merge(ref

+	                    .checkFinalConditions(new NullProgressMonitor()));

+	

+	            assertTrue("warnings expected", result.hasWarning());

+	            assertEquals(errorCode, result.getEntryMatchingSeverity(

+	                    RefactoringStatus.WARNING).getCode());

+	        }

+        }

+    }	

+

+    private ICompilationUnit[] createCUs(String[] qualifiedNames)

+    	throws Exception

+    {

+        ICompilationUnit[] cus = new ICompilationUnit[qualifiedNames.length];

+

+        for (int idx = 0; idx < qualifiedNames.length; idx++)

+        {

+            Assert.isNotNull(qualifiedNames[idx]);

+            cus[idx] = createCUfromTestFile(getRoot().createPackageFragment(

+                    	getQualifier(qualifiedNames[idx]), true, null),

+                    	getSimpleName(qualifiedNames[idx]));

+        }

+        return cus;

+    }

+

+    private String getQualifier(String qualifiedName)

+    {

+        int dot = qualifiedName.lastIndexOf('.');

+        return qualifiedName.substring(0, dot != -1 ? dot : 0);

+    }

+

+    private String getSimpleName(String qualifiedName)

+    {

+        return qualifiedName.substring(qualifiedName.lastIndexOf('.') + 1);

+    }

+

+    private static IMethod getMethod(ICompilationUnit cu,

+            ISourceRange sourceRange) throws JavaModelException

+    {

+        IJavaElement[] jes = cu.codeSelect(sourceRange.getOffset(), sourceRange

+                .getLength());

+        if (jes.length != 1 || !(jes[0] instanceof IMethod))

+            return null;

+        return (IMethod)jes[0];

+    }

+

+    private static void chooseNewReceiver(

+            MoveInstanceMethodProcessor refProc, int newReceiverType,

+            String newReceiverName)

+    {

+        IVariableBinding chosen = null;

+        IVariableBinding[] possibleNewReceivers = refProc.getPossibleTargets();

+        for (int i = 0; i < possibleNewReceivers.length; i++)

+        {

+            IVariableBinding candidate = possibleNewReceivers[i];

+            if (candidate.getName().equals(newReceiverName)

+                    && typeMatches(newReceiverType, candidate))

+            {

+                assertNull(chosen);

+                chosen = candidate;

+            }

+        }

+        assertNotNull("Expected new receiver not available.", chosen);

+        refProc.setTarget(chosen);

+    }

+

+    private static boolean typeMatches(int newReceiverType,

+            IVariableBinding newReceiver)

+    {

+        return newReceiverType == PARAMETER && newReceiver.isParameter()

+                || newReceiverType == FIELD && newReceiver.isField();

+    }

+

+    /********** tests *********/

+// test method template    

+//  public void test0() throws Exception

+//  {

+//      helper1(new String[] { "p1.A", "p2.B", "p3.C" }, "p1.A", 7, 17, 7, 20,

+//              PARAMETER, "b", false, false);

+//  }

+//	public void testFail0() throws Exception

+//	{

+//		failHelper1("p1.IA", 5, 17, 5, 20, PARAMETER, "b", true, true, RefactoringStatusCodes.SELECT_METHOD_IMPLEMENTATION);	

+//	}

+

+    // TODO(SH): more tests for combinations of inline,removeDelegate!

+    

+    /* Testing receiver types */

+    // TODO: commented passing tests

+	// public void testFieldNewReceiver() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.A", "p.B"}, "p.A",

+	// 7, 17, 7, 19, FIELD, "b", true, true, true);// warn:

+	// change-field-to-default-vis

+	// }

+	//    

+	// public void testParameterNewReceiver() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.A", "p.B"}, "p.A",

+	// 5, 17, 5, 19, PARAMETER, "b", true, true, false);

+	// }

+	//

+	// /* Testing team classes */

+	// public void testTeamclass1() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.T", "p.O"}, "p.O",

+	// 7, 17, 7, 20, FIELD, "_t", true, true, true);// warn:

+	// change-field-to-default-vis

+	// }

+	//    

+	// public void testTeamclass2() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.T", "p.O"}, "p.O",

+	// 5, 17, 5, 20, PARAMETER, "t", false, false, false);

+	// }

+	//    

+	// /* Testing role classes */

+	// public void testRoleclass1() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.T", "p.O"}, "p.O",

+	// 8, 17, 8, 20, FIELD, "_r", true, false, false);

+	// }

+	//

+	// public void testRoleclass2() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.T", "p.O"}, "p.O",

+	// 7, 17, 7, 20, PARAMETER, "r", true, false, false);

+	// }

+	//

+	// /* Testing nested teams */

+	// public void testNestedTeam1() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.T", "p.O"}, "p.O",

+	// 8, 17, 8, 20, FIELD, "_nT", true, false, false);

+	// }

+	//    

+	// public void testNestedTeam2() throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.T", "p.O"}, "p.O",

+	// 7, 17, 7, 20, PARAMETER, "nT", true, false, false);

+	// }

+	//

+	// /* Testing role files */

+	// //TODO(gbr) implement tests for role files

+	// // public void testRoleFile1() throws Exception

+	// // {

+	// // }

+	// //

+	// // public void testRoleFile2() throws Exception

+	// // {

+	// // }

+	//    

+	// public void testRoleClassWithLongMethodSpecsInCallinBinding()

+	// throws Exception

+	// {

+	// performConditionChecking_warnings(

+	// new String[] {"p.O", "p.S", "p.B", "p.T"}, "p.O",

+	// 8, 17, 8, 18, FIELD, "_s", null, true, true,

+	// // FIXME(SH):

+	// //OTRefactoringStatusCodes.OVERLOADING

+	// -1

+	// );

+	// }

+	//

+	// public void testRoleClassWithLongMethodSpecsInCalloutBinding()

+	// throws Exception

+	// {

+	// performConditionChecking_warnings(

+	// new String[] {"p.O", "p.S", "p.B", "p.T"}, "p.O",

+	// 8, 17, 8, 18, FIELD, "_s", null, true, true,

+	// // FIXME(SH):

+	// //OTRefactoringStatusCodes.OVERLOADING

+	// -1

+	// );

+	// }

+	//

+	// public void testExplicitlyInheritedRoleClassWithLongMethodSpecs()

+	// throws Exception

+	// {

+	// performConditionChecking_warnings(

+	// new String[] {"p.O", "p.S", "p.B", "p.T"}, "p.O",

+	// 8, 17, 8, 18, FIELD, "_s", null, true, true,

+	// //FIXME(SH):

+	// //OTRefactoringStatusCodes.OVERLOADING

+	// -1

+	// );

+	// }

+	// public void testImplicitlyInheritedRoleClassWithLongMethodSpecs()

+	// throws Exception

+	// {

+	// performConditionChecking_warnings(

+	// new String[] {"p.O", "p.S", "p.B", "p.T1", "p.T2"}, "p.O",

+	// 8, 17, 8, 18, FIELD, "_s", null, true, true,

+	// // FIXME(SH):

+	// //OTRefactoringStatusCodes.OVERLOADING

+	// -1

+	// );

+	// }

+	// public void testTargetMethodAccessesPrivateFeatureOfEnclosingType1()

+	// throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.A", "p.B", "p.C"},

+	// "p.A", 8, 17, 8, 19, FIELD, "_c",

+	// true, true, true);//warn: move needs to open visibility of field

+	// }

+	// public void testTargetMethodAccessesPrivateFeatureOfEnclosingType2()

+	// throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p.A", "p.B", "p.C"},

+	// "p.A", 7, 17, 7, 19, PARAMETER, "c",

+	// true, true, true);//warn: move needs to open visibility of field

+	// }

+	// public void testTargetMethodAccessesProtectedFeatureOfEnclosingType1()

+	// throws Exception

+//    {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p1.A", "p1.B", "p2.C"},

+	// "p1.A", 10, 17, 10, 19, FIELD, "_c",

+	// true, true, true);//warn: move needs to open visibility of field

+//    }

+	// public void testTargetMethodAccessesProtectedFeatureOfEnclosingType2()

+	// throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p1.A", "p1.B", "p2.C"},

+	// "p1.A", 9, 17, 9, 19, PARAMETER, "c",

+	// true, true, true);//warn: move needs to open visibility of field

+	// }

+//    

+	// public void

+	// testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1()

+	// throws Exception

+//    {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p1.A", "p1.B", "p2.C"},

+	// "p1.A", 10, 17, 10, 19, FIELD, "_c",

+	// true, true, true);//warn: move needs to open visibility of field

+	// }

+	// public void

+	// testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2()

+	// throws Exception

+	// {

+	// performAndCheckSelectedCU_passing(

+	// new String[] {"p1.A", "p1.B", "p2.C"},

+	// "p1.A", 9, 17, 9, 19, PARAMETER, "c",

+	// true, true, true);//warn: move needs to open visibility of field

+	// }

+    //tests for ambiguity in method specs

+	public void testAmbiguousRoleMethodSpecifierInCallinBinding1()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.B", "p.T"},

+                "p.O", 8, 17, 8, 18, FIELD, "_s",

+                true, true, OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+    }

+    public void testAmbiguousRoleMethodSpecifierInCallinBinding2()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.T"},

+                "p.O", 5, 17, 5, 18, PARAMETER, "s",

+                true, true, OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+    }

+    public void _testAmbiguousBaseMethodSpecifierInCallinBinding1()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.B", "p.T"},

+                "p.O", 8, 17, 8, 18, FIELD, "_s",

+                false, false,

+				OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+    }

+    public void testAmbiguousBaseMethodSpecifierInCallinBinding2()

+		throws Exception

+	{

+	    performAndCheckSelectedCU_failing(

+	            new String[] {"p.O", "p.S", "p.T"},

+	            "p.O", 5, 17, 5, 18, PARAMETER, "s",

+	            true, true, OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+	}

+    public void testAmbiguousRoleMethodSpecifierInCalloutBinding1()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.B", "p.T"},

+                "p.O", 8, 17, 8, 18, FIELD, "_s",

+                true, true, OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+    }

+    public void testAmbiguousRoleMethodSpecifierInCalloutBinding2()

+    	throws Exception

+	{

+	    performAndCheckSelectedCU_failing(

+	            new String[] {"p.O", "p.S", "p.T"},

+	            "p.O", 5, 17, 5, 18, PARAMETER, "s",

+	            true, true, OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+	}

+    public void _testAmbiguousBaseMethodSpecifierInCalloutBinding1()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.B", "p.T"},

+                "p.O", 8, 17, 8, 18, FIELD, "_s",

+                true, true, OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+    }

+    public void testAmbiguousBaseMethodSpecifierInCalloutBinding2()

+		throws Exception

+	{

+	    performAndCheckSelectedCU_failing(

+	            new String[] {"p.O", "p.S", "p.T"},

+	            "p.O", 5, 17, 5, 18, PARAMETER, "s",

+	            false, false,

+				OTRefactoringStatusCodes.AMBIGUOUS_METHOD_SPECIFIER);

+	}

+    //tests for overriding

+    public void _testMovedMethodIsOverriddenInBaseClass()

+		throws Exception

+	{

+        performAndCheckSelectedCU_failing(

+	            new String[] {"p.O", "p.S", "p.T"},

+	            "p.O", 7, 17, 7, 18, FIELD, "_s",

+	            true, true, OTRefactoringStatusCodes.BASE_METHOD_OVERRIDES_MOVED_METHOD);

+	}

+    public void _testMovedMethodIsOverriddenInRoleClass()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.T"},

+                "p.O", 7, 17, 7, 18, FIELD, "_s",

+                true, true, OTRefactoringStatusCodes.ROLE_METHOD_OVERRIDES_MOVED_METHOD);

+    }

+    public void _testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.T"},

+                "p.O", 7, 17, 7, 18, FIELD, "_s",

+                true, true, OTRefactoringStatusCodes.ROLE_METHOD_OVERRIDES_MOVED_METHOD);

+    }

+    public void _testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass()

+    	throws Exception

+	{

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.T1", "p.T2"},

+                "p.O", 7, 17, 7, 18, FIELD, "_s",

+                true, true, OTRefactoringStatusCodes.ROLE_METHOD_OVERRIDES_MOVED_METHOD);

+	}

+    //tests for duplication

+    public void testDuplicateMethodInNewReceiver()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S"},

+                "p.O", 7, 17, 7, 17, FIELD, "_s",

+                true, true, -1);

+    }

+    public void testDuplicateMethodInBaseClassReceiver()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.O", "p.S", "p.T"},

+                "p.O", 7, 17, 7, 17, FIELD, "_s",

+                true, true, -1);

+    }

+

+    public void _testDuplicateMethodInNewParameterReceiver1()

+    throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.A", "p.B"},

+                "p.A", 6, 17, 6, 18, PARAMETER, "b",

+                true, true, OTRefactoringStatusCodes.DUPLICATE_METHOD_IN_NEW_RECEIVER);

+    }

+    

+    public void _testDuplicateMethodInNewParameterReceiver2()

+    throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.A", "p.B"},

+                "p.A", 8, 17, 8, 18, PARAMETER, "b",

+                true, true, OTRefactoringStatusCodes.DUPLICATE_METHOD_IN_NEW_RECEIVER);

+    }

+    

+    public void _testTargetMethodIsPrivate()

+    	throws Exception

+    {

+        performAndCheckSelectedCU_failing(

+                new String[] {"p.A", "p.B"},

+                "p.A", 6, 18, 6, 20, PARAMETER, "b",

+                true, true, OTRefactoringStatusCodes.CANNOT_MOVE_PRIVATE);

+    }

+    

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveMethodTests.java
new file mode 100644
index 0000000..849a565
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveMethodTests.java
@@ -0,0 +1,41 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.move;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ *

+ */

+public class MoveMethodTests

+{

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(MoveMethodTests.class.getName());

+        

+        suite.addTest(MoveInstanceMethodTests.suite());

+        suite.addTest(MoveStaticMethodTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveStaticMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveStaticMethodTests.java
new file mode 100644
index 0000000..d648a18
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveStaticMethodTests.java
@@ -0,0 +1,563 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.move;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IField;

+import org.eclipse.jdt.core.IJavaProject;

+import org.eclipse.jdt.core.IMember;

+import org.eclipse.jdt.core.IMethod;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.internal.corext.refactoring.structure.MoveStaticMembersProcessor;

+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;

+import org.eclipse.ltk.core.refactoring.RefactoringStatus;

+import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;

+

+/**

+ * Part of the tests in this class have been copied from the original class

+ * <code>MoveMembersTests</code> in the test suite

+ *<code>org.eclipse.jdt.ui.tests.refactoring</code> provided by Eclipse.

+ *

+ * @author brcan

+ *  

+ */

+public class MoveStaticMethodTests extends RefactoringTest

+{

+    private static final String REFACTORING_PATH = "MoveStaticMethod/";

+

+    public MoveStaticMethodTests(String name)

+    {

+        super(name);

+    }

+

+    public static Test suite()

+    {

+        return new MySetup(new TestSuite(MoveStaticMethodTests.class));

+    }

+

+    public static Test setUpTest(Test someTest)

+    {

+        return new MySetup(someTest);

+    }

+

+    protected String getRefactoringPath()

+    {

+        return REFACTORING_PATH;

+    }

+

+    private static MoveRefactoring createRefactoring(IMember[] members, IType destination)

+    	throws JavaModelException

+    {

+        return createRefactoring(destination.getJavaProject(), members, destination.getFullyQualifiedName('.'));

+    }

+

+    private static MoveRefactoring createRefactoring(IJavaProject project, IMember[] members, String destination)

+    	throws JavaModelException

+    {

+        MoveStaticMembersProcessor processor = new MoveStaticMembersProcessor(

+                members, JavaPreferencesSettings.getCodeGenerationSettings(project));

+        if (processor == null)

+        {

+            return null;

+        }

+        processor.setDestinationTypeFullyQualifiedName(destination);

+

+        return new MoveRefactoring(processor);

+    }

+

+    //helper methods for passing tests

+    private void methodHelper_passing(

+            String[] methodNames,

+            String[][] signatures,

+            String srcCuName,

+            String destCuName) throws Exception

+    {

+        fieldMethodTypeHelper_passing(

+                new String[0], methodNames, signatures, new String[0], srcCuName, destCuName);

+    }

+

+    private void fieldMethodTypeHelper_passing(

+            String[] fieldNames,

+            String[] methodNames,

+            String[][] signatures,

+            String[] typeNames,

+            String srcCuName,

+            String destCuName) throws Exception

+    {

+        IPackageFragment packForSrc = getPackageP();

+        IPackageFragment packForDest = getPackageP();

+        fieldMethodTypePackageHelper_passing(

+                fieldNames, methodNames, signatures, typeNames, packForSrc, packForDest, srcCuName, destCuName);

+    }

+

+    private void fieldMethodTypePackageHelper_passing(

+            String[] fieldNames,

+            String[] methodNames,

+            String[][] signatures,

+            String[] typeNames,

+            IPackageFragment packForSrc,

+            IPackageFragment packForDest,

+            String srcCuName,

+            String destTypeName) throws Exception

+    {

+    	String[] destNames= destTypeName.split("[$]");

+    	String destCUName = destNames[0];

+        //ParticipantTesting.reset();

+        ICompilationUnit srcCU = createCUfromTestFile(packForSrc, srcCuName);

+		ICompilationUnit destCU = createCUfromTestFile(packForDest, destCUName);

+        IType srcType = getType(srcCU, srcCuName);

+        IType destType = getType(destCU, destCUName);

+        for (int i=1; i<destNames.length; i++)

+        	destType= destType.getType(destNames[i]);

+        IField[] fields = getFields(srcType, fieldNames);

+        IMethod[] methods = getMethods(srcType, methodNames, signatures);

+        IType[] types = getMemberTypes(srcType, typeNames);

+

+        IType destinationType = destType;

+        IMember[] members = merge(methods, fields, types);

+        // FIXME(SH): is this needed (was doubly commented)?

+        //String[] handles= ParticipantTesting.createHandles(members);

+        //MoveArguments[] args= new MoveArguments[handles.length];

+        //for (int i = 0; i < args.length; i++) {

+        //	args[i]= new MoveArguments(destinationType, true);

+        //}

+        MoveRefactoring ref = createRefactoring(members, destinationType);

+

+        RefactoringStatus result = performRefactoringWithStatus(ref);

+        assertTrue("precondition was supposed to pass",

+                result.getSeverity() <= RefactoringStatus.WARNING);

+        //ParticipantTesting.testMove(handles, args);

+

+        String expected;

+        String actual;

+

+        expected = getFileContents(getOutputTestFileName(srcCuName));

+        actual = srcCU.getSource();

+        assertEqualLines("incorrect modification of " + srcCuName, expected, actual);

+

+        expected = getFileContents(getOutputTestFileName(destCUName));

+        actual = destCU.getSource();

+        assertEqualLines("incorrect modification of " + destTypeName, expected, actual);

+    }

+

+    //helper methods for failing tests

+    private void fieldMethodTypeHelper_failing(

+            String[] fieldNames,

+            String[] methodNames,

+            String[][] signatures,

+            String[] typeNames,

+            int errorLevel,

+            String destinationTypeName) throws Exception

+    {

+        IPackageFragment packForA = getPackageP();

+        IPackageFragment packForB = getPackageP();

+        fieldMethodTypePackageHelper_failing(

+                fieldNames, methodNames, signatures, typeNames, errorLevel, destinationTypeName, packForA, packForB);

+    }

+

+    private void fieldMethodTypePackageHelper_failing(

+            String[] fieldNames,

+            String[] methodNames,

+            String[][] signatures,

+            String[] typeNames,

+            int errorLevel,

+            String destinationTypeName,

+            IPackageFragment packForA,

+            IPackageFragment packForB) throws Exception

+    {

+        ICompilationUnit cuA = createCUfromTestFile(packForA, "A");

+        ICompilationUnit cuB = createCUfromTestFile(packForB, "B");

+        try

+        {

+            IType typeA = getType(cuA, "A");

+            IField[] fields = getFields(typeA, fieldNames);

+            IMethod[] methods = getMethods(typeA, methodNames, signatures);

+            IType[] types = getMemberTypes(typeA, typeNames);

+

+            MoveRefactoring ref = createRefactoring(

+                    typeA.getJavaProject(), merge(methods, fields, types), destinationTypeName);

+            if (ref == null)

+            {

+                assertEquals(errorLevel, RefactoringStatus.FATAL);

+                return;

+            }

+            RefactoringStatus result = performRefactoring(ref);

+            assertNotNull("precondition was supposed to fail", result);

+            assertEquals("precondition was supposed to fail", errorLevel,

+                    result.getSeverity());

+        }

+        finally

+        {

+            performDummySearch();

+            cuA.delete(false, null);

+            cuB.delete(false, null);

+        }

+    }

+    

+    /********** tests *********/

+	public void test0() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test1() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test2() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test3() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test4() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test9() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test10() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test11() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test12() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test13() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test14() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test15() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test16() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test17() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test18() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test19() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test20() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test28() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m", "n" },

+                new String[][] { new String[0], new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test29() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void test41() throws Exception

+    {

+        methodHelper_passing(

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                "A",

+                "B");

+    }

+

+    public void testFail0() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.FATAL,

+                "p.B");

+    }

+

+    public void testFail1() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.ERROR,

+                "p.B.X");

+    }

+

+    public void testFail2() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.ERROR,

+                "p.B");

+    }

+

+    public void testFail3() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[] { "I", "I" } },

+                new String[0],

+                RefactoringStatus.ERROR,

+                "p.B");

+    }

+

+    public void testFail4() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[] { "I", "I" } },

+                new String[0],

+                RefactoringStatus.WARNING,

+                "p.B");

+    }

+

+    public void testFail5() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[] { "I", "I" } },

+                new String[0],

+                RefactoringStatus.WARNING,

+                "p.B");

+    }

+

+    public void testFail9() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.WARNING, // visibility adjustment

+                "p.B");

+    }

+

+    public void testFail10() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.WARNING, // visibility adjustment

+                "p.B");

+    }

+

+    public void testFail13() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.WARNING, // visibility adjustment

+                "p.B");

+    }

+

+    public void testFail15() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.WARNING,

+                "p.B");

+    }

+

+    public void testFail17() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.FATAL,

+                "java.lang.Object");

+    }

+

+    public void testFail18() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.FATAL,

+                "p.DontExist");

+    }

+

+    public void testFail19() throws Exception

+    {

+        fieldMethodTypeHelper_failing(

+                new String[0],

+                new String[] { "m" },

+                new String[][] { new String[0] },

+                new String[0],

+                RefactoringStatus.ERROR,

+                "p.B");

+    }

+    

+    public void testMoveToTeamclass() throws Exception

+    {

+        methodHelper_passing(new String[] { "m" }, new String[][] { new String[0] }, "B", "T");

+    }

+

+    public void testMoveToNestedTeamclass1() throws Exception

+    {

+        methodHelper_passing(new String[] { "m" }, new String[][] { new String[0] }, "B", "T");

+    }

+    public void testMoveToNestedTeamclass2() throws Exception

+    {

+        methodHelper_passing(new String[] { "m" }, new String[][] { new String[0] }, "B", "T$TR");

+    }

+    public void testMoveToRoleclass() throws Exception

+    {

+        methodHelper_passing(new String[] { "m" }, new String[][] { new String[0] }, "B", "T$R");

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pullup/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pullup/AllTests.java
new file mode 100644
index 0000000..f594bee
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pullup/AllTests.java
@@ -0,0 +1,50 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.pullup;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author jogeb

+ * 

+ *         Runs all OT-specific refactoring tests and corresponding eclipse

+ *         refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-PullUp-Refactoring Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.pullup.PullUpTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pullup/PullUpTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pullup/PullUpTests.java
new file mode 100644
index 0000000..ff621e2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pullup/PullUpTests.java
@@ -0,0 +1,330 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.pullup;
+
+import java.util.Arrays;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester;
+import org.eclipse.jdt.internal.corext.refactoring.structure.PullUpRefactoringProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil;
+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
+import org.eclipse.ltk.core.refactoring.Refactoring;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.RefactoringStatusEntry;
+import org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * Example TestCase to practice testing for the diploma thesis.
+ * 
+ * @author Johannes Gebauer
+ */
+public class PullUpTests extends RefactoringTest {
+	private static final String REFACTORING_PATH = "PullUp/";
+
+	public PullUpTests(String name) {
+		super(name);
+	}
+
+	public static Test suite() {
+		return new MySetup(new TestSuite(PullUpTests.class));
+	}
+
+	public static Test setUpTest(Test test) {
+		return new MySetup(test);
+	}
+
+	protected String getRefactoringPath() {
+		return REFACTORING_PATH;
+	}
+
+	private ICompilationUnit[] createCUs(String[] cuNames) throws Exception {
+		ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+
+		for (int idx = 0; idx < cuNames.length; idx++) {
+			Assert.isNotNull(cuNames[idx]);
+			cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+		}
+		return cus;
+	}
+
+	private String createInputTestFileName(ICompilationUnit[] cus, int idx) {
+		return getInputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+	}
+
+	private String createOutputTestFileName(ICompilationUnit[] cus, int idx) {
+		return getOutputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+	}
+
+	private String getSimpleNameOfCu(String compUnit) {
+		int dot = compUnit.lastIndexOf('.');
+		return compUnit.substring(0, dot);
+	}
+
+	private void setTargetClass(PullUpRefactoringProcessor processor, int targetClassIndex) throws JavaModelException {
+		IType[] possibleClasses = getPossibleTargetClasses(processor);
+		processor.setDestinationType(getPossibleTargetClasses(processor)[possibleClasses.length - 1 - targetClassIndex]);
+	}
+
+	private IType[] getPossibleTargetClasses(PullUpRefactoringProcessor processor) throws JavaModelException {
+		return processor.getCandidateTypes(new RefactoringStatus(), new NullProgressMonitor());
+	}
+
+	private static IMethod[] getMethods(IMember[] members) {
+		List l = Arrays.asList(JavaElementUtil.getElementsOfType(members, IJavaElement.METHOD));
+		return (IMethod[]) l.toArray(new IMethod[l.size()]);
+	}
+
+	private static PullUpRefactoringProcessor createRefactoringProcessor(IMember[] methods) throws JavaModelException {
+		IJavaProject project = null;
+		if (methods != null && methods.length > 0)
+			project = methods[0].getJavaProject();
+		if (RefactoringAvailabilityTester.isPullUpAvailable(methods)) {
+			PullUpRefactoringProcessor processor = new PullUpRefactoringProcessor(methods, JavaPreferencesSettings.getCodeGenerationSettings(project));
+			new ProcessorBasedRefactoring(processor);
+			return processor;
+		}
+		return null;
+	}
+
+	/**
+	 * The <code>ICompilationUnit</code> containing the declaring type must be
+	 * at position 0.
+	 * 
+	 * @param fieldNames
+	 *            TODO
+	 */
+	private void performPullUp_pass(String[] cuNames, String[] methodNames, String[][] signatures, String[] fieldNames, boolean deleteAllInSourceType,
+			boolean deleteAllMatchingMethods, int targetClassIndex, String nameOfDeclaringType) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType declaringType = getType(cus[0], nameOfDeclaringType);
+			IMethod[] methods = getMethods(declaringType, methodNames, signatures);
+			IField[] fields = getFields(declaringType, fieldNames);
+			IMember[] members = merge(methods, fields);
+
+			PullUpRefactoringProcessor processor = createRefactoringProcessor(members);
+			Refactoring ref = processor.getRefactoring();
+
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+
+			setTargetClass(processor, targetClassIndex);
+
+			if (deleteAllInSourceType)
+				processor.setDeletedMethods(methods);
+			if (deleteAllMatchingMethods)
+				processor.setDeletedMethods(getMethods(processor.getMatchingElements(new NullProgressMonitor(), false)));
+
+			RefactoringStatus checkInputResult = ref.checkFinalConditions(new NullProgressMonitor());
+			assertTrue("precondition was supposed to pass", !checkInputResult.hasError());
+			performChange(ref, false);
+
+			for (int i = 0; i < cus.length; i++) {
+				String expected = getFileContents(getOutputTestFileName(cuNames[i]));
+				String actual = cus[i].getSource();
+				assertEqualLines(expected, actual);
+			}
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+
+	/**
+	 * The <code>ICompilationUnit</code> containing the declaring type must be
+	 * at position 0.
+	 */
+	private void performPullUp_warning(String[] cuNames, String[] methodNames, String[][] signatures, boolean deleteAllInSourceType,
+			boolean deleteAllMatchingMethods, int targetClassIndex, String nameOfDeclaringType) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType declaringType = getType(cus[0], nameOfDeclaringType);
+			IMethod[] methods = getMethods(declaringType, methodNames, signatures);
+
+			PullUpRefactoringProcessor processor = createRefactoringProcessor(methods);
+			Refactoring ref = processor.getRefactoring();
+
+			
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+			
+			setTargetClass(processor, targetClassIndex);
+
+			if (deleteAllInSourceType)
+				processor.setDeletedMethods(methods);
+			if (deleteAllMatchingMethods)
+				processor.setDeletedMethods(getMethods(processor.getMatchingElements(new NullProgressMonitor(), false)));
+
+			RefactoringStatus checkInputResult = ref.checkFinalConditions(new NullProgressMonitor());
+			RefactoringStatusEntry[] initialConditionStatus = checkInputResult.getEntries();
+			assertEquals("precondition was supposed to give a warning", RefactoringStatus.WARNING, initialConditionStatus[0].getSeverity());
+			assertEquals("precondition was supposed to give only one warning", initialConditionStatus.length, 1);
+
+			performChange(ref, false);
+
+			for (int i = 0; i < cus.length; i++) {
+				String expected = getFileContents(getOutputTestFileName(cuNames[i]));
+				String actual = cus[i].getSource();
+				assertEqualLines(expected, actual);
+			}
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+	
+	private void performPullUp_failing(String[] cuNames, String[] methodNames, String[][] signatures, String[] fieldNames, boolean deleteAllInSourceType,
+			boolean deleteAllMatchingMethods, int targetClassIndex, String nameOfDeclaringType) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType declaringType = getType(cus[0], nameOfDeclaringType);
+			IMethod[] methods = getMethods(declaringType, methodNames, signatures);
+			IField[] fields = getFields(declaringType, fieldNames);
+			IMember[] members = merge(methods, fields);
+
+			PullUpRefactoringProcessor processor = createRefactoringProcessor(members);
+			Refactoring ref = processor.getRefactoring();
+
+			setTargetClass(processor, targetClassIndex);
+
+			if (deleteAllInSourceType)
+				processor.setDeletedMethods(methods);
+			if (deleteAllMatchingMethods)
+				processor.setDeletedMethods(getMethods(processor.getMatchingElements(new NullProgressMonitor(), false)));
+
+			RefactoringStatus result = performRefactoring(ref);
+			assertNotNull("precondition was supposed to fail.", result);
+            assertTrue("precondition was supposed to fail.", !result.isOK());
+			assertNotNull("precondition result is expected to contain an error.", result.getEntryMatchingSeverity(RefactoringStatus.ERROR));
+
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+
+	/******* tests ******************/
+
+	/* Pull up Method Tests */
+	
+	public void testPullUpBoundMethod() throws Exception {
+		performPullUp_warning(new String[] { "B", "BSuper", "T" }, new String[] { "bm" }, new String[][] { new String[0] }, true, false, 0, "B");
+	}
+
+	public void testPullUpCallinMethod() throws Exception {
+		performPullUp_pass(new String[] { "T", "TSuper", "B" }, new String[] { "rm" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "R");
+	}
+
+	public void testPullUpMethodToImplicitSuperclass() throws Exception {
+		performPullUp_pass(new String[] { "T", "TSuper", "B" }, new String[] { "rm" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "R");
+	}
+
+	public void testDeletionOfMatchingMethods() throws Exception {
+		performPullUp_pass(new String[] { "T", "T2", "TSuper", "B" }, new String[] { "rm" }, new String[][] { new String[0] }, new String[] {}, true, true, 0,
+				"R");
+	}
+
+	public void testReferencingRoleInDeclaredLifting() throws Exception {
+		performPullUp_failing(new String[] { "T", "TSuper", "B" }, new String[] { "m" }, new String[][] { new String[] { "QB;" } }, new String[] {}, true,
+				false, 0, "T");
+	}
+
+	public void testPulledUpMethodIsOverriddenInImplicitSubRole() throws Exception {
+		performPullUp_failing(new String[] { "T1", "T2", "TSuper", }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, true, false, 0,
+				"R");
+	}
+
+	public void testAmbiguityInExplicitRelatedRole1() throws Exception {
+		performPullUp_failing(new String[] { "T", "B" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "R1");
+	}
+
+	public void testAmbiguityInExplicitRelatedRole2() throws Exception {
+		performPullUp_failing(new String[] { "T", "B" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "R1");
+	}
+
+	public void testAmbiguityInImplicitRelatedRole1() throws Exception {
+		performPullUp_failing(new String[] { "T1", "T2", "TSuper", "B" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, true, false,
+				0, "R");
+	}
+
+	public void testAmbiguityInImplicitRelatedRole2() throws Exception {
+		performPullUp_failing(new String[] { "T1", "T2", "TSuper", "B" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, true, false,
+				0, "R");
+	}
+
+	public void testAmbiguityInBase1() throws Exception {
+		performPullUp_failing(new String[] { "B2", "B1", "T" }, new String[] { "bm" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "B2");
+	}
+
+	public void testAmbiguityInBase2() throws Exception {
+		performPullUp_failing(new String[] { "B2", "B1", "T" }, new String[] { "bm" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "B2");
+	}
+
+	public void testPullUpCallinIntoRegularClass() throws Exception {
+		performPullUp_failing(new String[] { "T", "C" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, true, false, 0, "R");
+	}
+
+	/* Pull up Field Tests */
+	
+	public void testPullUpAnchoredTypeField() throws Exception {
+		performPullUp_failing(new String[] { "T2", "T1", "T3" }, new String[] {}, new String[][] { new String[0] }, new String[] { "extern" }, true, false, 0,
+				"T2");
+	}
+	
+	public void testPulledUpFieldWillBeShadowed() throws Exception {
+		performPullUp_failing(new String[] { "T2", "T1", "T3" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, true, false, 0,
+				"Role");
+	}
+	
+	public void testPullUpCalloutFieldInBase() throws Exception {
+		performPullUp_pass(new String[] { "B1", "B2", "T" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, true, false, 0, "B1");
+	}
+	
+	public void testPullUpFieldToImplicitSuperclass() throws Exception {
+		performPullUp_pass(new String[] { "T", "TSuper" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, true, false, 0, "R");
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pushdown/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pushdown/AllTests.java
new file mode 100644
index 0000000..59dea91
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pushdown/AllTests.java
@@ -0,0 +1,46 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.pushdown;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author jogeb

+ * 

+ *         Runs all OT-specific refactoring tests and corresponding eclipse

+ *         refactoring tests

+ */

+public class AllTests {

+

+	public static void main(String[] args) {

+		junit.textui.TestRunner.run(AllTests.suite());

+	}

+

+	public static Test suite() {

+		TestSuite suite = new TestSuite("All OT-PushDown-Refactoring Tests");

+

+		suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.pushdown.PushDownTests.suite());

+

+		return suite;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pushdown/PushDownTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pushdown/PushDownTests.java
new file mode 100644
index 0000000..ff7ab3e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/pushdown/PushDownTests.java
@@ -0,0 +1,265 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.pushdown;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester;
+import org.eclipse.jdt.internal.corext.refactoring.structure.PushDownRefactoringProcessor;
+import org.eclipse.ltk.core.refactoring.Refactoring;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * Copy of {@link org.eclipse.jdt.ui.tests.refactoring.PushDownTests}.
+ * 
+ * @author Johannes Gebauer
+ * 
+ */
+public class PushDownTests extends RefactoringTest {
+
+	private static final Class clazz= PushDownTests.class;
+	
+	private static final String REFACTORING_PATH= "PushDown/";
+
+	public PushDownTests(String name) {
+		super(name);
+	}
+	
+	protected String getRefactoringPath() {
+		return REFACTORING_PATH;
+	}
+	
+
+	public static Test suite() {
+		return new MySetup(new TestSuite(PushDownTests.class));
+	}
+
+	private void performPullUp_pass(String[] cuNames, String[] methodNames, String[][] signatures, String[] fieldNames, String nameOfDeclaringType)
+			throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType declaringType = getType(cus[0], nameOfDeclaringType);
+			IMethod[] methods = getMethods(declaringType, methodNames, signatures);
+			IField[] fields = getFields(declaringType, fieldNames);
+			IMember[] members = merge(methods, fields);
+
+			PushDownRefactoringProcessor processor = createRefactoringProcessor(members);
+			Refactoring ref = processor.getRefactoring();
+
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+
+			RefactoringStatus checkInputResult = ref.checkFinalConditions(new NullProgressMonitor());
+			assertTrue("precondition was supposed to pass", !checkInputResult.hasError());
+			performChange(ref, false);
+
+			for (int i = 0; i < cus.length; i++) {
+				String expected = getFileContents(getOutputTestFileName(cuNames[i]));
+				String actual = cus[i].getSource();
+				assertEqualLines(expected, actual);
+			}
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+	
+	private void performPullUp_fail(String[] cuNames, String[] methodNames, String[][] signatures, String[] fieldNames, String nameOfDeclaringType)
+			throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		try {
+
+			IType declaringType = getType(cus[0], nameOfDeclaringType);
+			IMethod[] methods = getMethods(declaringType, methodNames, signatures);
+			IField[] fields = getFields(declaringType, fieldNames);
+			IMember[] members = merge(methods, fields);
+
+			PushDownRefactoringProcessor processor = createRefactoringProcessor(members);
+			Refactoring ref = processor.getRefactoring();
+
+			assertTrue("activation", ref.checkInitialConditions(new NullProgressMonitor()).isOK());
+			
+			RefactoringStatus result = performRefactoring(ref);
+			assertNotNull("precondition was supposed to fail.", result);
+			assertTrue("precondition was supposed to fail.", !result.isOK());
+			assertNotNull("precondition result is expected to contain an error.", result.getEntryMatchingSeverity(RefactoringStatus.ERROR));
+
+		} finally {
+			performDummySearch();
+			for (int i = 0; i < cus.length; i++) {
+				cus[i].delete(false, null);
+			}
+
+		}
+	}
+	
+	private static PushDownRefactoringProcessor createRefactoringProcessor(IMember[] methods) throws JavaModelException {
+		IJavaProject project = null;
+		if (methods != null && methods.length > 0)
+			project = methods[0].getJavaProject();
+		if (RefactoringAvailabilityTester.isPullUpAvailable(methods)) {
+			PushDownRefactoringProcessor processor = new PushDownRefactoringProcessor(methods);
+			new ProcessorBasedRefactoring(processor);
+			return processor;
+		}
+		return null;
+	}
+	
+	private ICompilationUnit[] createCUs(String[] cuNames) throws Exception {
+		ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+
+		for (int idx = 0; idx < cuNames.length; idx++) {
+			Assert.isNotNull(cuNames[idx]);
+			cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+		}
+		return cus;
+	}
+	
+	
+	//--------------------------------------------------------
+	public void testPushDownMethodToImplicitSubclass() throws Exception {
+		performPullUp_pass(new String[] { "TSuper", "T", "B" }, new String[] { "rm" }, new String[][] { new String[0] }, new String[] {}, "R");
+	}
+	
+	public void testDeclaringTypeHasADirectPhantomSubRole() throws Exception {
+		performPullUp_fail(new String[] { "TSuper", "T1", "T2" }, new String[] { "rm" }, new String[][] { new String[0] }, new String[] {}, "R");
+	}
+	
+	public void testPushedDownMethodReferencedInMethodBinding1() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] { "bm" }, new String[][] { new String[0] }, new String[] {}, "B1");
+	}
+	
+	public void testPushedDownMethodReferencedInMethodBinding2() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] { "bm" }, new String[][] { new String[0] }, new String[] {}, "B1");
+	}
+	
+	public void testPushedDownMethodReferencedInMethodBinding3() throws Exception {
+		performPullUp_fail(new String[] { "T1", "T2", "B" }, new String[] { "rm" }, new String[][] { new String[0] }, new String[] {}, "Role");
+	}	
+	
+	public void testPushedDownMethodIsReferencedInRegularGuard1() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] { "b" }, new String[][] { new String[0] }, new String[] {}, "R1");
+	}	
+	
+	public void testPushedDownMethodIsReferencedInRegularGuard2() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] { "b" }, new String[][] { new String[0] }, new String[] {}, "R1");
+	}	
+	
+	public void testPushedDownMethodIsReferencedInBaseGuard1() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] { "b" }, new String[][] { new String[0] }, new String[] {}, "B1");
+	}
+	
+	public void testPushedDownMethodIsReferencedInBaseGuard2() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] { "b" }, new String[][] { new String[0] }, new String[] {}, "B1");
+	}
+
+	public void testPushedDownMethodIsReferencedInBaseGuard3() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] { "b" }, new String[][] { new String[0] }, new String[] {}, "B1");
+	}
+	
+	public void testPushedDownMethodIsReferencedInParameterMapping1() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] { "f" }, new String[][] { new String[0] }, new String[] {}, "R1");
+	}
+
+	public void testPushedDownMethodIsReferencedInParameterMapping2() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] { "f" }, new String[][] { new String[0] }, new String[] {}, "R1");
+	}
+
+	// See Ticket #286
+	public void _testPushedDownMethodIsReferencedInParameterMapping3() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] { "f" }, new String[][] { new String[0] }, new String[] {}, "R1");
+	}
+	
+	/* Push Down Field Tests */
+	public void testPushDownFieldToImplicitSubclass() throws Exception {
+		performPullUp_pass(new String[] { "TSuper", "T", "B" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, "R");
+	}
+	
+	public void testPushedDownFieldReferencedInCalloutToField() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, "B1");
+	}
+	
+	public void testPushDownTypeAnchorInstance() throws Exception {
+		performPullUp_fail(new String[] { "T1", "T2", "T3" }, new String[] {}, new String[][] { new String[0] }, new String[] { "anchor" }, "T1");
+	}
+	
+	public void testPushedDownFieldWouldShadowAnInheritedField() throws Exception {
+		performPullUp_fail(new String[] { "B", "T1", "T2" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, "B");
+	}
+	
+	public void testPushedDownFieldIsReferencedInRegularGuard1() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] {}, new String[][] { new String[0] }, new String[] { "b" }, "R1");
+	}
+
+	public void testPushedDownFieldIsReferencedInRegularGuard2() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] {}, new String[][] { new String[0] }, new String[] { "b" }, "R1");
+	}
+
+	public void testPushedDownFieldIsReferencedInBaseGuard1() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] {}, new String[][] { new String[0] }, new String[] { "b" }, "B1");
+	}
+
+	public void testPushedDownFieldIsReferencedInBaseGuard2() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] {}, new String[][] { new String[0] }, new String[] { "b" }, "B1");
+	}
+
+	public void testPushedDownFieldIsReferencedInBaseGuard3() throws Exception {
+		performPullUp_fail(new String[] { "B1", "B2", "T" }, new String[] {}, new String[][] { new String[0] }, new String[] { "b" }, "B1");
+	}
+	
+	public void testPushedDownFieldIsReferencedInParameterMapping1() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, "R1");
+	}
+	
+	public void testPushedDownFieldIsReferencedInParameterMapping2() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, "R1");
+	}
+	
+	public void testOverrideImplicitInheritedMethod() throws Exception {
+		performPullUp_fail(new String[] { "A", "T1", "T2" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, "A");
+	}
+	
+	public void testOverrideExplicitInheritedMethod() throws Exception {
+		performPullUp_pass(new String[] { "T2", "T1", "A" }, new String[] { "m" }, new String[][] { new String[0] }, new String[] {}, "R");
+	}
+	
+	// See Ticket #286
+	public void _testPushedDownFieldIsReferencedInParameterMapping3() throws Exception {
+		performPullUp_fail(new String[] { "T", "B" }, new String[] {}, new String[][] { new String[0] }, new String[] { "f" }, "R1");
+	}
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/AllTests.java
new file mode 100644
index 0000000..74bc249
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/AllTests.java
@@ -0,0 +1,54 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ * 

+ * Runs all OT-specific refactoring tests and corresponding eclipse refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-Rename-Refactoring Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameMethodInInterfaceTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenamePrivateMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameStaticMethodTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameVirtualMethodInClassTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenamePrivateFieldTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.rename.RenameTypeTests.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameMethodInInterfaceTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameMethodInInterfaceTests.java
new file mode 100644
index 0000000..43074bb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameMethodInInterfaceTests.java
@@ -0,0 +1,257 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor;
+import org.eclipse.ltk.core.refactoring.RefactoringCore;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * @author brcan
+ *  
+ */
+public class RenameMethodInInterfaceTests extends RefactoringTest
+{
+    private static final String REFACTORING_PATH = "RenameMethodInInterface/";
+
+    public RenameMethodInInterfaceTests(String name)
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+        return new MySetup(new TestSuite(RenameMethodInInterfaceTests.class));
+    }
+
+    public static Test setUpTest(Test test)
+    {
+        return new MySetup(test);
+    }
+
+    protected String getRefactoringPath()
+    {
+        return REFACTORING_PATH;
+    }
+
+    private RenameRefactoring createRefactoring(RenameMethodProcessor processor)
+    {
+        return new RenameRefactoring(processor);
+    }
+
+    private RenameMethodProcessor createProcessor(IMethod method)
+    {
+        return new RenameVirtualMethodProcessor(method);
+    }
+
+    private void performRenamingMtoK_failing(String[] cuQNames)
+    	throws Exception
+    {
+        performRenameRefactoring_failing(cuQNames, "m", "k", new String[0]);
+    }
+    
+    private void performRenameRefactoring_failing(
+            String[] cuQNames,
+            String methodName,
+            String newMethodName,
+            String[] signatures)
+    	throws Exception
+    {
+        ICompilationUnit[] cus = createCUs(cuQNames);
+        IType interfaceI = null;
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+            if (cus[idx].getElementName().equals("I.java"))
+            {
+                interfaceI = getType(cus[idx], "I");
+            }
+        }
+        RenameMethodProcessor processor = createProcessor(
+                interfaceI.getMethod(methodName, signatures));
+        RenameRefactoring ref = createRefactoring(processor);
+        processor.setNewElementName(newMethodName);
+        RefactoringStatus result = performRefactoring(ref);
+        assertNotNull("precondition was supposed to fail", result);
+    }
+
+    private void performRenaming_passing(String [] cuQNames)
+    	throws Exception
+    {
+        performRenamingMtoK_passing(cuQNames, true);
+    }
+    
+    /**
+     * Rename method m to k and update all references.
+     */
+    private void performRenamingMtoK_passing(
+            String [] cuQNames,
+            boolean updateReferences)
+    	throws Exception
+    {
+        performRenameRefactoring_passing(
+                cuQNames, "m", "k", new String[0], true, updateReferences);
+    }
+
+
+    private void performRenameRefactoring_passing(
+            String[] cuQNames,
+            String methodName, 
+            String newMethodName,
+            String[] signatures, 
+            boolean shouldPass, 
+            boolean updateReferences)
+    	throws Exception
+    {
+        ICompilationUnit[] cus = createCUs(cuQNames);
+        IType interfaceI = null;
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+            if (cus[idx].getElementName().equals("I.java"))
+            {
+                interfaceI = getType(cus[idx], "I");
+            }
+        }
+        RenameMethodProcessor processor = createProcessor(
+                interfaceI.getMethod(methodName, signatures));
+        RenameRefactoring ref = createRefactoring(processor);
+        processor.setUpdateReferences(updateReferences);
+        processor.setNewElementName(newMethodName);
+        assertEquals("was supposed to pass", null, performRefactoring(ref));
+        if (!shouldPass)
+        {
+            for (int idx = 0; idx < cus.length; idx++)
+            {
+	            assertTrue("incorrect renaming because of a java model bug",
+	                    !getFileContents(
+	                            getOutputTestFileName(getSimpleName(cuQNames[idx]))).
+	                            equals(cus[idx].getSource()));
+            }
+            return;
+        }
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+	        assertEqualLines("incorrect renaming",
+	                getFileContents(
+	                        getOutputTestFileName(
+	                                getSimpleName(cuQNames[idx]))), cus[idx].getSource());
+        }	
+        assertTrue("anythingToUndo", RefactoringCore.getUndoManager()
+                .anythingToUndo());
+        assertTrue("! anythingToRedo", !RefactoringCore.getUndoManager()
+                .anythingToRedo());
+        //assertEquals("1 to undo", 1,
+        // Refactoring.getUndoManager().getRefactoringLog().size());
+
+        RefactoringCore.getUndoManager().performUndo(null,
+                new NullProgressMonitor());
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+            assertEqualLines("invalid undo",
+                    getFileContents(
+                            getInputTestFileName(
+                                    getSimpleName(cuQNames[idx]))), cus[idx].getSource());
+        }
+        assertTrue("! anythingToUndo", !RefactoringCore.getUndoManager()
+                .anythingToUndo());
+        assertTrue("anythingToRedo", RefactoringCore.getUndoManager()
+                .anythingToRedo());
+        RefactoringCore.getUndoManager().performRedo(null,
+                new NullProgressMonitor());
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+	        assertEqualLines("invalid redo",
+	                getFileContents(
+	                        getOutputTestFileName(
+	                                getSimpleName(cuQNames[idx]))), cus[idx].getSource());
+        }
+    }
+
+    private ICompilationUnit[] createCUs(String[] qualifiedNames)
+		throws Exception
+	{
+	    ICompilationUnit[] cus = new ICompilationUnit[qualifiedNames.length];
+	
+	    for (int idx = 0; idx < qualifiedNames.length; idx++)
+	    {
+	        Assert.isNotNull(qualifiedNames[idx]);
+	        cus[idx] = createCUfromTestFile(getRoot().createPackageFragment(
+	                	getQualifier(qualifiedNames[idx]), true, null),
+	                	getSimpleName(qualifiedNames[idx]));
+	    }
+	    return cus;
+	}
+    
+    private String getQualifier(String qualifiedName)
+    {
+        int dot = qualifiedName.lastIndexOf('.');
+        return qualifiedName.substring(0, dot != -1 ? dot : 0);
+    }
+
+    private String getSimpleName(String qualifiedName)
+    {
+        return qualifiedName.substring(qualifiedName.lastIndexOf('.') + 1);
+    }
+
+    /********** tests **********/
+    //passing
+    public void testUpdateImplementationInRoleClass() throws Exception
+    {
+        performRenaming_passing(new String[] {"p.I", "p.T"});
+    }
+    public void testUpdateImplementationInExplicitlyInheritedRoleClass()
+    	throws Exception
+    {
+        performRenaming_passing(new String[] {"p.I", "p.T"});
+    }
+    public void testUpdateImplementationInImplicitlyInheritedRoleClass()
+    	throws Exception
+    {
+        performRenaming_passing(new String[] {"p.I", "p.T1", "p.T2"});
+    }
+    //failing
+    public void testMethodAlreadyExistsInRoleClass() throws Exception
+    {
+        performRenamingMtoK_failing(new String[] {"p.I", "p.T"});
+    }
+    public void testMethodAlreadyExistsInExplicitlyInheritedRoleClass()
+    	throws Exception
+    {
+        performRenamingMtoK_failing(new String[] {"p.I", "p.T"});
+    }
+    public void testMethodAlreadyExistsInImplicitlyInheritedRoleClass()
+	    throws Exception
+	{
+	    performRenamingMtoK_failing(new String[] {"p.I", "p.T1", "p.T2"});
+	}
+
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameMethodTests.java
new file mode 100644
index 0000000..8dc8c68
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameMethodTests.java
@@ -0,0 +1,43 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ *

+ */

+public class RenameMethodTests

+{

+	public static Test suite()

+	{

+		TestSuite suite = new TestSuite(RenameMethodTests.class.getName());

+		

+		suite.addTest(RenameVirtualMethodInClassTests.suite());

+		suite.addTest(RenameMethodInInterfaceTests.suite());

+		suite.addTest(RenamePrivateMethodTests.suite());	

+		suite.addTest(RenameStaticMethodTests.suite());

+

+		return suite;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenamePrivateFieldTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenamePrivateFieldTests.java
new file mode 100644
index 0000000..42f2c88
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenamePrivateFieldTests.java
@@ -0,0 +1,418 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.ltk.core.refactoring.RefactoringCore;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor;
+
+/**
+ * @author jwl
+ *
+ */
+public class RenamePrivateFieldTests extends RefactoringTest
+{
+	private static final Class	clazz            = RenamePrivateFieldTests.class;
+	private static final String	REFACTORING_PATH = "RenamePrivateField/";
+
+	private Object _prefixPref;
+
+	public RenamePrivateFieldTests(String name)
+	{
+		super(name);
+	}
+
+	public static Test suite()
+	{
+		return new MySetup(new TestSuite(clazz));
+	}
+
+	public static Test setUpTest(Test someTest)
+	{
+		return new MySetup(someTest);
+	}
+
+	protected String getRefactoringPath()
+	{
+		return REFACTORING_PATH;
+	}
+
+	protected void setUp() throws Exception
+	{
+		super.setUp();
+		Hashtable options = JavaCore.getOptions();
+		_prefixPref = options.get(JavaCore.CODEASSIST_FIELD_PREFIXES);
+		options.put(JavaCore.CODEASSIST_FIELD_PREFIXES, getPrefixes());
+		JavaCore.setOptions(options);
+	}
+
+	protected void tearDown() throws Exception
+	{
+		super.tearDown();
+		Hashtable options = JavaCore.getOptions();
+		options.put(JavaCore.CODEASSIST_FIELD_PREFIXES, _prefixPref);
+		JavaCore.setOptions(options);
+	}
+
+	private String getPrefixes()
+	{
+		return "_";
+	}
+
+    private void performRenamingFtoG_failing(
+            String[] cuNames, 
+            String selectionCuName, 
+            String declaringTypeName)
+        throws Exception
+    {
+    	performRenaming_failing(cuNames, selectionCuName, declaringTypeName, "f", "g");
+    }
+
+    private void performRenaming_failing(
+            String[] cuNames,
+            String selectionCuName,
+            String declaringTypeName,
+            String fieldName,
+            String newFieldName)
+        throws Exception
+    {
+    	performRenameRefactoring_failing(
+                cuNames, selectionCuName, declaringTypeName, fieldName, newFieldName, false, false);
+    }
+
+
+	private void performRenameRefactoring_failing(
+            String[] cuNames,
+            String selectionCuName,
+            String declaringTypeName,
+            String fieldName,
+            String newFieldName,
+            boolean renameGetter, 
+            boolean renameSetter) throws Exception
+	{
+        int selectionCuIndex = firstIndexOf(selectionCuName, cuNames);
+        Assert.isTrue(selectionCuIndex != -1,
+                "parameter selectionCuQName must match some String in cuQNames.");
+        Assert.isTrue(0 <= selectionCuIndex
+                && selectionCuIndex < cuNames.length);
+
+        ICompilationUnit[] cus = createCUs(cuNames);
+        ICompilationUnit declaringCu = cus[selectionCuIndex];
+        IType declaringType = getType(declaringCu, declaringTypeName);
+        IField field = declaringType.getField(fieldName);
+		RenameFieldProcessor processor = new RenameFieldProcessor(field);
+		RenameRefactoring refactoring = new RenameRefactoring(processor);
+		processor.setNewElementName(newFieldName);
+		processor.setRenameGetter(renameGetter);
+		processor.setRenameSetter(renameSetter);
+		RefactoringStatus result = performRefactoring(refactoring);
+		assertNotNull("precondition was supposed to fail", result);
+	}
+
+    private void performRenamingFtoG_passing(
+            String[] cuNames,
+            String declaringTypeName, 
+            boolean updateReferences) throws Exception
+    {
+        performRenameRefactoring_passing(
+                cuNames, declaringTypeName, "f", "g",
+                updateReferences, false, false, false, false, false);
+    }
+
+	private void performRenameRefactoring_passing(
+            String[] cuNames,
+            String declaringTypeName,
+            String fieldName,
+            String newFieldName,
+			boolean updateReferences,
+            boolean updateTextualMatches,
+			boolean renameGetter,
+            boolean renameSetter,
+			boolean expectedGetterRenameEnabled,
+			boolean expectedSetterRenameEnabled) throws Exception
+	{
+//		ParticipantTesting.reset();
+		ICompilationUnit[] cus = createCUs(cuNames);
+		IType declaringType = getType(cus[0], declaringTypeName);
+		IField field = declaringType.getField(fieldName);
+		RenameFieldProcessor processor = new RenameFieldProcessor(field);
+		RenameRefactoring refactoring = new RenameRefactoring(processor);
+		processor.setUpdateReferences(updateReferences);
+		processor.setUpdateTextualMatches(updateTextualMatches);
+//		assertEquals("getter rename enabled", expectedGetterRenameEnabled,
+//				processor.canEnableGetterRenaming() == null);
+//		assertEquals("setter rename enabled", expectedSetterRenameEnabled,
+//				processor.canEnableSetterRenaming() == null);
+		processor.setRenameGetter(renameGetter);
+		processor.setRenameSetter(renameSetter);
+		processor.setNewElementName(newFieldName);
+		String newGetterName = processor.getNewGetterName();
+		String newSetterName = processor.getNewSetterName();
+
+		int numbers = 1;
+		List elements = new ArrayList();
+		elements.add(field);
+		List args = new ArrayList();
+		args.add(new RenameArguments(newFieldName, updateReferences));
+		if (renameGetter && expectedGetterRenameEnabled)
+		{
+			elements.add(processor.getGetter());
+			args.add(new RenameArguments(newGetterName, updateReferences));
+			numbers++;
+		}
+		if (renameSetter && expectedSetterRenameEnabled)
+		{
+			elements.add(processor.getSetter());
+			args.add(new RenameArguments(newSetterName, updateReferences));
+			numbers++;
+		}
+//		String[] renameHandles = ParticipantTesting.createHandles(elements
+//				.toArray());
+
+		RefactoringStatus result = performRefactoring(refactoring);
+		assertEquals("was supposed to pass", null, result);
+        for (int idx = 0; idx < cus.length; idx++)
+		{
+    		assertEqualLines("invalid renaming!",
+    				getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+		}
+
+//		ParticipantTesting.testRename(renameHandles, (RenameArguments[])args
+//				.toArray(new RenameArguments[args.size()]));
+
+		assertTrue("anythingToUndo", RefactoringCore.getUndoManager()
+				.anythingToUndo());
+		assertTrue("! anythingToRedo", !RefactoringCore.getUndoManager()
+				.anythingToRedo());
+
+		RefactoringCore.getUndoManager().performUndo(null,
+				new NullProgressMonitor());
+        for (int idx = 0; idx < cus.length; idx++)
+		{
+    		assertEqualLines("invalid undo",
+    				getFileContents(createInputTestFileName(cus, idx)), cus[idx].getSource());
+        }
+        
+		assertTrue("! anythingToUndo", !RefactoringCore.getUndoManager()
+				.anythingToUndo());
+		assertTrue("anythingToRedo", RefactoringCore.getUndoManager()
+				.anythingToRedo());
+
+		RefactoringCore.getUndoManager().performRedo(null,
+				new NullProgressMonitor());
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+    		assertEqualLines("invalid redo",
+    				getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+        }
+	}
+
+    private int firstIndexOf(String one, String[] others)
+    {
+        for (int idx = 0; idx < others.length; idx++)
+        {
+            if (one == null && others[idx] == null || one.equals(others[idx]))
+            {
+                return idx;
+            }
+        }
+        return -1;
+    }
+
+    private String createInputTestFileName(ICompilationUnit[] cus, int idx)
+    {
+        return getInputTestFileName(getSimpleNameOfCu(
+                cus[idx].getElementName()));
+    }
+
+    private String createOutputTestFileName(ICompilationUnit[] cus,
+                                                int idx)
+    {
+        return getOutputTestFileName(getSimpleNameOfCu(cus[idx].
+                getElementName()));
+    }
+
+    private String getSimpleNameOfCu(String compUnit)
+    {
+        int dot = compUnit.lastIndexOf('.');
+        return compUnit.substring(0, dot);
+    }
+    
+    private String getUnqualifiedMemberTypeName(String qualifiedMemberType)
+    {
+    	int dot = qualifiedMemberType.indexOf('.');
+        if (dot != -1)
+        {
+        	return qualifiedMemberType.substring(dot+1);
+        }
+        return qualifiedMemberType;
+    }
+
+    private ICompilationUnit[] createCUs(String[] cuNames) throws Exception
+    {
+        ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+    
+        for (int idx = 0; idx < cuNames.length; idx++)
+        {
+            Assert.isNotNull(cuNames[idx]);
+            cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+        }
+        return cus;
+    }
+
+	//--------- tests ----------
+    public void testRenameFieldInTeamclass() throws Exception
+	{
+        performRenamingFtoG_passing(new String[]{"T"}, "T", true);
+	}
+    
+    public void testUpdateFieldReferenceInTeamMethod() throws Exception
+    {
+        performRenamingFtoG_passing(new String[]{"T"}, "T", true);
+    }
+    
+    public void testUpdateFieldReferenceInLiftingMethod() throws Exception
+    {
+        performRenamingFtoG_passing(new String[]{"T"}, "T", true);
+    }
+
+    public void testUpdateTeamFieldReferenceInRoleclass1() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "T", "number", "amount",
+                true, false, false, false, false, false);
+    }
+
+    public void testUpdateTeamFieldReferenceInRoleclass2() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "T", "number", "amount",
+                true, false, false, false, false, false);
+    }
+    
+    public void testUpdateTeamFieldReferenceInNestedTeam1() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "T", "number", "amount",
+                true, false, false, false, false, false);
+    }
+
+    public void testUpdateTeamFieldReferenceInNestedTeam2() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "T", "number", "amount",
+                true, false, false, false, false, false);
+    }
+
+    public void testRenameFieldInRoleclass() throws Exception
+	{
+        performRenamingFtoG_passing(new String[]{"T"}, "R", true);
+	}
+    
+    public void testUpdateFieldReferenceInRoleclass1() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "R", "name", "newName",
+                true, false, true, false, true, false);
+    }
+
+    public void testUpdateFieldReferenceInRoleclass2() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "R", "name", "newName",
+                true, true, true, true, true, true);
+    }
+
+    public void testUpdateFieldReferenceInRoleclass3() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "R", "name", "newName",
+                true, false, false, true, false, true);
+    }
+
+	public void testUpdateReferenceInCalloutToField1() throws Exception
+	{
+        performRenamingFtoG_passing(new String[]{"B", "T"}, "B", true);
+	}
+	//private field from super base class visible in bound base class
+    public void testUpdateReferenceInCalloutToField2() throws Exception
+    {
+        performRenamingFtoG_passing(new String[]{"B1", "B2", "T"}, "B1", true);
+    }
+    //shorthand definition: callout to field access method without
+    //prior abstract declaration + method names only
+    public void testUpdateReferenceInCalloutToField3() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"B", "T"}, "B", "name", "surname",
+                true, false, false, false, false, false);
+    }
+    //shorthand definition: callout to field access method without
+    //prior abstract declaration + complete signatures
+    public void testUpdateReferenceInCalloutToField4() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"B", "T"}, "B", "name", "surname",
+                true, false, false, false, false, false);
+    }
+    
+    //passing
+    public void testRenameGetterAndSetter1() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "T", "number", "index",
+                true, false, true, true, true, true);
+    }
+    public void testRenameGetterAndSetter2() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"T"}, "R", "number", "index",
+                true, false, true, true, true, true);
+    }
+    //failing
+    public void testRenameGetterAndSetter3() throws Exception
+    {
+        performRenameRefactoring_failing(
+                new String[]{"T1", "T2"}, "T2", "T2", "number", "index", true, true);
+    }
+    public void testRenameGetterAndSetter4() throws Exception
+    {
+        performRenameRefactoring_failing(
+                new String[]{"T1", "T2"}, "T2", "R", "number", "index", true, true);
+    }
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenamePrivateMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenamePrivateMethodTests.java
new file mode 100644
index 0000000..8fa6f0a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenamePrivateMethodTests.java
@@ -0,0 +1,234 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ltk.core.refactoring.RefactoringCore;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor;
+
+/**
+ * The tests in this class have been inspired by the test class
+ * <code>RenamePrivateMethodTests</code> in the test suite
+ *<code>org.eclipse.jdt.ui.tests.refactoring</code> provided by Eclipse JDT.
+ *  
+ * @author brcan
+ */
+public class RenamePrivateMethodTests extends RefactoringTest
+{
+	private static final String REFACTORING_PATH = "RenamePrivateMethod/";
+
+	public RenamePrivateMethodTests(String name)
+	{
+		super(name);
+	}
+
+	public static Test suite()
+	{
+		return new MySetup(new TestSuite(RenamePrivateMethodTests.class));
+	}
+
+	public static Test setUpTest(Test test)
+	{
+		return new MySetup(test);
+	}
+	
+	protected String getRefactoringPath()
+	{
+		return REFACTORING_PATH;
+	}
+	
+    private RenameRefactoring createRefactoring(RenameMethodProcessor processor)
+    {
+        return new RenameRefactoring(processor);
+    }
+
+    private RenameMethodProcessor createProcessor(IMethod method)
+    {
+        return new RenameNonVirtualMethodProcessor(method);
+    }
+
+	private void performRenameRefactoring_failing(
+	        String methodName,
+	        String newMethodName,
+	        String[] signatures) 
+		throws Exception
+    {
+		IType classA = getType(createCUfromTestFile(getPackageP(), "A"), "A");
+		RenameMethodProcessor processor =
+		    createProcessor(classA.getMethod(methodName, signatures));
+		RenameRefactoring refactoring = createRefactoring(processor);
+		processor.setNewElementName(newMethodName);
+		RefactoringStatus result= performRefactoring(refactoring);
+		assertNotNull("precondition was supposed to fail", result);
+	}
+	
+	private void performRenaming_failing() throws Exception
+	{
+		performRenameRefactoring_failing("m", "k", new String[0]);
+	}
+
+	private void performRenaming_passing(
+	        String cuNames[],
+	        String declaringTypeName) throws Exception
+	{
+		performRenamingMtoK_passing(cuNames, declaringTypeName, true);
+	}
+	
+	private void performRenamingMtoK_passing(
+	        String cuNames[],
+	        String declaringTypeName,
+	        boolean updateReferences)
+		throws Exception
+	{
+		performRenameRefactoring_passing(
+		        cuNames, declaringTypeName, "m", "k", new String[0], updateReferences);
+	}
+	
+	private void performRenameRefactoring_passing(
+	        String[] cuNames,
+	        String declaringTypeName,
+	        String methodName,
+	        String newMethodName,
+	        String[] signatures,
+	        boolean updateReferences)
+		throws Exception
+	{
+		ICompilationUnit[] cus = createCUs(cuNames);
+		IType declaringType = getType(cus[0], declaringTypeName);
+		IMethod method = declaringType.getMethod(methodName, signatures);
+		RenameMethodProcessor processor = createProcessor(method);
+		RenameRefactoring refactoring = createRefactoring(processor);
+		processor.setUpdateReferences(updateReferences);
+		processor.setNewElementName(newMethodName);
+		assertEquals("was supposed to pass", null, performRefactoring(refactoring));
+        for (int idx = 0; idx < cus.length; idx++)
+		{
+    		assertEqualLines("invalid renaming!",
+    				getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+		}
+				
+		assertTrue("anythingToUndo", RefactoringCore.getUndoManager()
+				.anythingToUndo());
+		assertTrue("! anythingToRedo", !RefactoringCore.getUndoManager()
+				.anythingToRedo());
+
+		RefactoringCore.getUndoManager().performUndo(null,
+				new NullProgressMonitor());
+        for (int idx = 0; idx < cus.length; idx++)
+		{
+    		assertEqualLines("invalid undo",
+    				getFileContents(createInputTestFileName(cus, idx)), cus[idx].getSource());
+        }
+        
+		assertTrue("! anythingToUndo", !RefactoringCore.getUndoManager()
+				.anythingToUndo());
+		assertTrue("anythingToRedo", RefactoringCore.getUndoManager()
+				.anythingToRedo());
+
+		RefactoringCore.getUndoManager().performRedo(null,
+				new NullProgressMonitor());
+        for (int idx = 0; idx < cus.length; idx++)
+        {
+    		assertEqualLines("invalid redo",
+    		        getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+        }
+	}
+
+    private ICompilationUnit[] createCUs(String[] cuNames) throws Exception
+    {
+        ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+	
+	    for (int idx = 0; idx < cuNames.length; idx++)
+	    {
+	        Assert.isNotNull(cuNames[idx]);
+	        cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+	    }
+	    return cus;
+	}
+
+    private String createInputTestFileName(ICompilationUnit[] cus, int idx)
+    {
+        return getInputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+    }
+
+    private String createOutputTestFileName(ICompilationUnit[] cus, int idx)
+    {
+        return getOutputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+    }
+
+    private String getSimpleNameOfCu(String compUnit)
+    {
+        int dot = compUnit.lastIndexOf('.');
+        return compUnit.substring(0, dot);
+    }
+
+	/******* tests ******************/
+	
+    public void testUpdateReferenceInCalloutBinding1() throws Exception
+    {
+        performRenaming_passing(new String[]{"B", "T"}, "B");
+    } 
+	
+    public void testUpdateReferenceInCalloutBinding2() throws Exception
+    {
+        performRenameRefactoring_passing(
+                new String[]{"B", "T"}, "B", "getAmount", "getQuantity", null, true);
+    }
+	
+    public void testUpdateReferenceInCallinBinding1() throws Exception
+    {
+        performRenaming_passing(new String[]{"B", "T"}, "B");
+    }
+
+    public void testUpdateReferenceInCallinBinding2() throws Exception
+    {
+        performRenaming_passing(new String[]{"B", "T"}, "B");
+    }
+
+    //renaming of private role method
+    public void testPrivateMethodInTeamclass() throws Exception
+    {
+        performRenaming_passing(new String[]{"T"}, "T");
+    }
+    
+    public void testUpdatePrivateTeamMethodInvocation1() throws Exception
+    {
+        performRenaming_passing(new String[]{"T"}, "T");
+    }
+    
+    public void testUpdatePrivateTeamMethodInvocation2() throws Exception
+    {
+        performRenameRefactoring_passing(new String[]{"T", "B1"}, "T", "m1", "k1", null, true);
+    }
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameStaticMethodTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameStaticMethodTests.java
new file mode 100644
index 0000000..9fa880e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameStaticMethodTests.java
@@ -0,0 +1,296 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ * 	   Fraunhofer FIRST - Initial API and implementation
+ * 	   Technical University Berlin - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.ltk.core.refactoring.RefactoringCore;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor;
+
+/**
+ * The tests in this class have initially been copied from the original class
+ * <code>RenameStaticMethodTests</code> in the test suite
+ *<code>org.eclipse.jdt.ui.tests.refactoring</code> provided by Eclipse. 
+ * 
+ * @author brcan
+ */
+public class RenameStaticMethodTests extends RefactoringTest
+{
+    private static final String REFACTORING_PATH = "RenameStaticMethod/";
+
+    public RenameStaticMethodTests(String name)
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+        return new MySetup(new TestSuite(RenameStaticMethodTests.class));
+    }
+
+    protected String getRefactoringPath()
+    {
+        return REFACTORING_PATH;
+    }
+
+    private RenameRefactoring createRefactoring(RenameMethodProcessor processor)
+    {
+        return new RenameRefactoring(processor);
+    }
+
+    private RenameMethodProcessor createProcessor(IMethod method)
+    {
+        return new RenameNonVirtualMethodProcessor(method);
+    }
+
+    private void performRenamingMtoK_failing() throws Exception
+    {
+        performRenameRefactoring_failing("m", "k", new String[0]);
+    }
+
+    private void performRenameRefactoring_failing(
+            String methodName,
+            String newMethodName,
+            String[] signatures)
+    	throws Exception
+    {
+        IType classA = getType(createCUfromTestFile(getPackageP(), "A"), "A");
+        try
+        {
+            RenameMethodProcessor processor =
+                createProcessor(classA.getMethod(methodName, signatures));
+            RenameRefactoring refactoring = createRefactoring(processor);
+            processor.setNewElementName(newMethodName);
+            RefactoringStatus result = performRefactoring(refactoring);
+            assertNotNull("precondition was supposed to fail", result);
+        }
+        finally
+        {
+            performDummySearch();
+            classA.getCompilationUnit().delete(true, null);
+        }
+    }
+
+    private void performRenaming_passing() throws Exception
+    {
+        performRenamingMtoK_passing(true);
+    }
+
+    /**
+     * Rename method m to k and update all references.
+     */
+    private void performRenamingMtoK_passing(boolean updateReferences)
+    	throws Exception
+    {
+        performRenameRefactoring_passing1("m", "k", new String[0], updateReferences);
+    }
+
+	private void performRenameRefactoring_passing2(
+	        String methodName,
+	        String newMethodName,
+	        String[] signatures)
+		throws Exception
+	{
+	    performRenameRefactoring_passing1(methodName, newMethodName, signatures, true);
+	}
+
+    private void performRenameRefactoring_passing1(
+            String methodName,
+            String newMethodName,
+            String[] signatures,
+            boolean updateReferences)
+    	throws Exception
+    {
+        ICompilationUnit cu = createCUfromTestFile(getPackageP(), "A");
+        try
+        {
+            IType classA = getType(cu, "A");
+            RenameMethodProcessor processor =
+                createProcessor(classA.getMethod(methodName, signatures));
+            RenameRefactoring refactoring = createRefactoring(processor);
+            processor.setUpdateReferences(updateReferences);
+            processor.setNewElementName(newMethodName);
+            assertEquals("was supposed to pass", null,
+                    performRefactoring(refactoring));
+            assertEqualLines("invalid renaming",
+                    getFileContents(getOutputTestFileName("A")), cu.getSource());
+
+            assertTrue("anythingToUndo", RefactoringCore.getUndoManager()
+                    .anythingToUndo());
+            assertTrue("! anythingToRedo", !RefactoringCore.getUndoManager()
+                    .anythingToRedo());
+
+            RefactoringCore.getUndoManager().performUndo(null,
+                    new NullProgressMonitor());
+            assertEqualLines("invalid undo",
+                    getFileContents(getInputTestFileName("A")), cu.getSource());
+
+            assertTrue("! anythingToUndo", !RefactoringCore.getUndoManager()
+                    .anythingToUndo());
+            assertTrue("anythingToRedo", RefactoringCore.getUndoManager()
+                    .anythingToRedo());
+
+            RefactoringCore.getUndoManager().performRedo(null,
+                    new NullProgressMonitor());
+            assertEqualLines("invalid redo",
+                    getFileContents(getOutputTestFileName("A")), cu.getSource());
+        }
+        finally
+        {
+            performDummySearch();
+            cu.delete(true, null);
+        }
+    }
+
+    /********** tests **********/
+// test method template
+//	public void test0() throws Exception
+//	{
+//		helper0_passing();
+//	}
+    
+	public void testFail0() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void testFail1() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void testFail2() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	//testFail3 deleted
+	
+	public void testFail4() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void testFail5() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void testFail6() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void testFail7() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void testFail8() throws Exception{
+	    performRenamingMtoK_failing();
+	}
+	
+	public void test0() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test1() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test2() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test3() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test4() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test5() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test6() throws Exception{
+	    performRenaming_passing();
+	}
+	
+	public void test7() throws Exception{
+	    performRenameRefactoring_passing2("m", "k", new String[]{Signature.SIG_INT});
+	}
+	
+	public void test8() throws Exception{
+	    performRenameRefactoring_passing2("m", "k", new String[]{Signature.SIG_INT});
+	}
+	
+	public void test9() throws Exception{
+	    performRenameRefactoring_passing1("m", "k", new String[]{Signature.SIG_INT}, false);
+	}
+	
+	public void test10() throws Exception
+	{
+		ICompilationUnit cuA = createCUfromTestFile(getPackageP(), "A");
+		ICompilationUnit cuB = createCUfromTestFile(getPackageP(), "B");
+
+		IType classB = getType(cuB, "B");
+		RenameMethodProcessor processor =
+		    createProcessor(classB.getMethod("method", new String[0]));
+		RenameRefactoring refactoring = createRefactoring(processor);
+		processor.setUpdateReferences(true);
+		processor.setNewElementName("newmethod");
+		assertEquals("was supposed to pass", null, performRefactoring(refactoring));
+		assertEqualLines("invalid renaming in A", getFileContents(
+		        getOutputTestFileName("A")), cuA.getSource());
+		assertEqualLines("invalid renaming in B", getFileContents(
+		        getOutputTestFileName("B")), cuB.getSource());
+	}
+
+	public void test11() throws Exception
+	{
+		IPackageFragment packageA =
+		    getRoot().createPackageFragment("a", false, new NullProgressMonitor());
+		IPackageFragment packageB =
+		    getRoot().createPackageFragment("b", false, new NullProgressMonitor());
+		try
+		{
+			ICompilationUnit cuA = createCUfromTestFile(packageA, "A");
+			ICompilationUnit cuB = createCUfromTestFile(packageB, "B");
+	
+			IType classA = getType(cuA, "A");
+			RenameMethodProcessor processor =
+			    createProcessor(classA.getMethod("method2", new String[0]));
+			RenameRefactoring refactoring = createRefactoring(processor);
+			processor.setUpdateReferences(true);
+			processor.setNewElementName("fred");
+			assertEquals("was supposed to pass", null, performRefactoring(refactoring));
+			assertEqualLines("invalid renaming in A", getFileContents(
+			        getOutputTestFileName("A")), cuA.getSource());
+			assertEqualLines("invalid renaming in B", getFileContents(
+			        getOutputTestFileName("B")), cuB.getSource());
+		}
+		finally
+		{
+			packageA.delete(true, new NullProgressMonitor());
+			packageB.delete(true, new NullProgressMonitor());
+		}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameTypeTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameTypeTests.java
new file mode 100644
index 0000000..a195882
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameTypeTests.java
@@ -0,0 +1,463 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor;
+import org.eclipse.ltk.core.refactoring.Refactoring;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * FIXME(SH):
+ * Once this test class is reactivated, also check the following conditions which are
+ * known not to work currently (e.g., OTDT 1.1.6):
+ * + Rename role type: 
+ *   - inline (not dialog-based) refactoring links all references of a role type but not: 
+ *     - its declaration 
+ *     - class literals 
+ *     (linked-mode in the Editor).
+ *   - class literals in a predicate are not renamed
+ * 
+ * @author brcan
+ *  
+ */
+@SuppressWarnings({"restriction", "nls"})
+public class RenameTypeTests extends RefactoringTest
+{
+    private static final String REFACTORING_PATH = "RenameType/";
+    
+    private static IPackageFragment _teamPkg;
+    
+    private RenameProcessor _processor = null;
+
+    
+    public RenameTypeTests(String name)
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+        return new MySetup(new TestSuite(RenameTypeTests.class));
+    }
+
+    public static Test setUpTest(Test someTest)
+    {
+        return new MySetup(someTest);
+    }
+
+    protected String getRefactoringPath()
+    {
+        return REFACTORING_PATH;
+    }
+
+//	MIGRATE
+	private RenameRefactoring createRefactoring(IType type, String newName)
+    	throws CoreException
+    {
+        _processor = new RenameTypeProcessor(type);
+        RenameTypeProcessor renameTypeProcessor = (RenameTypeProcessor)_processor;
+        renameTypeProcessor.setNewElementName(newName);
+	    RenameRefactoring ref = new RenameRefactoring(renameTypeProcessor);
+        return ref;
+    }
+
+    private void createTeamPackageFragment() throws Exception
+    {
+        _teamPkg = getRoot().createPackageFragment("p.T1", true, null);
+    }
+    
+    private IPackageFragment getUpdatedTeamPackageFragment() throws Exception
+    {
+        return getRoot().getPackageFragment("p.T2");
+    }
+
+    private IPackageFragment getTeamPackage()
+    {
+        return _teamPkg;
+    }
+
+    private void performRenameRefactoring_failing(
+            String[] cuNames,
+            String targetTypeName,
+            String newName,
+			boolean roleFilesExist) throws Exception
+    {
+        if (roleFilesExist) {
+			createTeamPackageFragment();
+		}
+        ICompilationUnit[] cus = createCUs(cuNames);
+        IType targetType = getType(cus[0], targetTypeName);
+        Refactoring ref = createRefactoring(targetType, newName);
+        RefactoringStatus result = performRefactoring(ref);
+        assertNotNull("precondition was supposed to fail", result);
+    }
+
+//	MIGRATE
+//    private String[] performRenameRefactoringOneCU_passing(
+//            String oldCuName,
+//            String oldName,
+//            String newName,
+//            String newCUName,
+//            boolean updateReferences,
+//            boolean updateTextualMatches) throws Exception
+//    {
+//        ICompilationUnit cu = createCUfromTestFile(getPackageP(), oldCuName);
+//        IType classA = getType(cu, oldName);
+//
+//        IPackageFragment pack = (IPackageFragment) cu.getParent();
+//        String[] renameHandles = null;
+//        if (classA.getDeclaringType() == null &&
+//                cu.getElementName().startsWith(classA.getElementName()))
+//        {
+//            renameHandles = ParticipantTesting.createHandles(classA, cu, cu.getResource());
+//        }
+//        else
+//        {
+//            renameHandles = ParticipantTesting.createHandles(classA);
+//        }
+//        RenameRefactoring ref = createRefactoring(classA, newName);
+//        RenameTypeProcessor processor = (RenameTypeProcessor) ref.getProcessor();
+//        processor.setUpdateReferences(updateReferences);
+//        processor.setUpdateTextualMatches(updateTextualMatches);
+//        assertEquals("was supposed to pass", null, performRefactoring(ref));
+//        ICompilationUnit newcu = pack.getCompilationUnit(newCUName + ".java");
+//        assertTrue("cu " + newcu.getElementName() + " does not exist", newcu.exists());
+//        assertEqualLines(
+//                "invalid renaming!",
+//                getFileContents(getOutputTestFileName(newCUName)),
+//                newcu.getSource());
+//        return renameHandles;
+//    }
+
+    private void performRenameRefactoring_passing(
+            String[] cuNames,
+            String targetTypeName,
+            String newName,
+            boolean roleFilesExist,
+            boolean updateReferences,
+            boolean updateTextualMatches) throws Exception
+    {
+//    	MIGRATE
+        if (roleFilesExist)
+        {
+            createTeamPackageFragment();
+        }
+        ICompilationUnit[] cus = createCUs(cuNames);
+        IType targetType = getType(cus[0], targetTypeName);
+        IPackageFragment pack = (IPackageFragment) cus[0].getParent();
+        RenameRefactoring refactoring = createRefactoring(targetType, newName);
+        RenameTypeProcessor renameTypeProcessor = (RenameTypeProcessor)_processor;
+        renameTypeProcessor.setUpdateReferences(updateReferences);
+        renameTypeProcessor.setUpdateTextualMatches(updateTextualMatches);
+		RefactoringStatus result = performRefactoring(refactoring);
+		assertEquals("was supposed to pass", null, result);
+		//if a top-level type is renamed, its compilation unit is also renamed
+		if (targetType.getDeclaringType() == null &&
+		        cus[0].getElementName().startsWith(targetType.getElementName()))
+		{
+		    ICompilationUnit newCu = pack.getCompilationUnit(newName + ".java");
+			assertTrue("cu " + newCu.getElementName() + " does not exist", newCu.exists());
+			assertEqualLines("invalid renaming!",
+			        getFileContents(getOutputTestFileName(newName)), newCu.getSource());
+			if (roleFilesExist)
+			{
+			    IPackageFragment updatedTeamPackage = getUpdatedTeamPackageFragment();
+		        for (int idx = 0; idx < cus.length; idx++)
+				{
+		            if (cus[idx].getElementName().startsWith("R") ||
+		                    cus[idx].getElementName().startsWith("TR"))
+		                
+		            {
+		                cus[idx] = updatedTeamPackage.getCompilationUnit(cus[idx].getElementName());
+			    		assertEqualLines("invalid renaming!",
+			    		        getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+		            }
+				}
+			}
+		}
+		else
+		{
+	        for (int idx = 0; idx < cus.length; idx++)
+			{
+	    		assertEqualLines("invalid renaming!",
+	    		        getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+			}
+
+		}
+    }
+    
+    private String getSimpleNameOfCu(String compUnit)
+    {
+        int dot = compUnit.lastIndexOf('.');
+        return compUnit.substring(0, dot);
+    }
+    
+    private String createOutputTestFileName(ICompilationUnit[] cus, int idx)
+    {
+        return getOutputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+    }
+
+    private ICompilationUnit[] createCUs(String[] cuNames) throws Exception
+    {
+        ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+
+        for (int idx = 0; idx < cuNames.length; idx++)
+        {
+            Assert.isNotNull(cuNames[idx]);
+            if (cuNames[idx].startsWith("R") || cuNames[idx].startsWith("TR"))
+            {
+                cus[idx] = createCUfromTestFile(getTeamPackage(), cuNames[idx]);
+            }
+            else
+            {
+	            cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+            }
+        }
+        return cus;
+    }
+    
+    /*********** tests ***********/
+    //passing
+	public void testRenameTeamclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1" }, "T1", "T2", false, true, false);
+	}
+
+	public void testRenameNestedTeamclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "TR1", "TR2", false, true, false);
+	}
+
+	public void testUpdateReferencesToTeamclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1" }, "T1", "T2", false, true, false);
+	}
+
+	public void testUpdateReferencesToNestedTeamclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "TR1", "TR2", false, true, false);
+	}
+
+	public void testRenameRoleclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "R1", "R2", false, true, false);
+	}
+
+	public void testRenameRoleclassPrecedence() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "R2", "ROut", false, true, false);
+	}
+
+	public void testRenameRoleclassLiteralInPredicate() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "R1", "ROut", false, true, false);
+	}
+
+	public void testRenameInnermostRole() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "IR1", "IR2", false, true, false);
+	}
+
+	public void testUpdateReferencesToRoleclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "R1", "R2", false, true, false);
+	}
+
+	public void testUpdateReferencesToInnermostRole() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T" }, "IR1", "IR2", false, true, false);
+	}
+
+	// see https://svn.objectteams.org/trac/ot/ticket/80
+	public void testUpdateImplicitSuperRoles() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T2", "T1" }, "R1", "R3", false, true, false);
+	}
+
+	public void testUpdateImplicitSubRoles() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R3", false, true, false);
+	}
+
+	public void testRenameImplicitSuperRoles1() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T8", "T2", "T3", "T4", "T5", "T6", "T7", "T1" }, "R2", "R_New", false, true, false);
+	}
+
+	public void testRenameImplicitSuperRoles2() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T2", "T1" }, "R1", "R4", false, true, false);
+	}
+
+	public void testRenameImplicitSubRoles1() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2", "T3", "T4", "T5", "T6", "T7", "T8" }, "R2", "R_New", false, true, false);
+	}
+
+	public void testRenameImplicitSubRoles2() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R4", false, true, false);
+	}
+
+	// see https://svn.objectteams.org/trac/ot/ticket/79
+	public void testUpdateReferenceInTeamPackage1() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "R1" }, "T1", "T2", true, true, false);
+
+	}
+
+	public void testUpdateReferenceInTeamPackage2() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "R1", "R2" }, "T1", "T2", true, true, false);
+
+	}
+
+	public void testUpdateReferenceUsingTypeAnchor1() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R3", false, true, false);
+	}
+
+	public void testUpdateReferenceUsingTypeAnchor2() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R3", false, true, false);
+	}
+
+	public void testUpdateReferenceUsingTypeAnchor3() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R3", false, true, false);
+	}
+
+	public void testUpdateReferenceUsingTypeAnchor4() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R3", false, true, false);
+	}
+
+	public void testUpdateReferenceUsingTypeAnchor5() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2" }, "R1", "R3", false, true, false);
+	}
+
+	public void testEnclosedNestedTeamHasNewName() throws Exception {
+		performRenameRefactoring_failing(new String[] { "B" }, "B", "A", false);
+	}
+
+	public void testEnclosedRoleHasNewName() throws Exception {
+		performRenameRefactoring_failing(new String[] { "B" }, "B", "A", false);
+	}
+
+	public void testEnclosedRoleInNestedTeamHasNewName() throws Exception {
+		performRenameRefactoring_failing(new String[] { "B" }, "B", "A", false);
+	}
+
+	public void testEnclosingNestedTeamHasNewName() throws Exception {
+		performRenameRefactoring_failing(new String[] { "B" }, "A", "C", false);
+	}
+
+	public void testEnclosingTeamHasNewName() throws Exception {
+		performRenameRefactoring_failing(new String[] { "B" }, "A", "B", false);
+	}
+
+	public void testUpdatePhantomTypeReference() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2", "T3" }, "R1", "R3", false, true, false);
+	}
+
+	public void testNameConflictInSubclass() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2" }, "R1", "R2", false);
+	}
+
+	public void testNameConflictInSuperclass() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2" }, "R1", "R2", false);
+	}
+
+	public void testNameConflictWithRegularClass1() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2", "A" }, "R1", "A", false);
+	}
+
+	public void testNameConflictWithRegularClass2() throws Exception {
+		performRenameRefactoring_failing(new String[] { "A", "T1" }, "A", "R1", false);
+	}
+
+	public void testImplicitOverridingInSuperTeam() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T", "TSuper" }, "R", "R1", false);
+	}
+
+	public void testImplicitOverridingInSubTeam() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T", "TSub" }, "R", "R1", false);
+	}
+
+	public void testNameClashInSameTeam() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T" }, "R1", "R2", false);
+	}
+
+	public void testShadowedName1() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T" }, "R1", "R2", false);
+	}
+
+	public void testShadowedName2() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T" }, "R1", "R2", false);
+	}
+
+	public void testShadowedNameOfSuperType1() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2" }, "R1", "R2", false);
+	}
+
+	public void testShadowedNameOfSuperType2() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2" }, "R1", "R2", false);
+	}
+
+	public void testShadowedNameOfSubType1() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2" }, "R1", "R2", false);
+	}
+		
+	public void testNameClashWithRoleFile() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "R2" }, "R1", "R2", true);
+	}
+		
+	 public void testShadowedNameRoleFile1() throws Exception {
+		performRenameRefactoring_failing(new String[] { "R1", "T1" }, "R1", "R2", true);
+	}
+
+	public void testShadowedNameRoleFile2() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "R2" }, "R1", "R2", true);
+	}
+
+	public void testShadowedNameRoleFile3() throws Exception {
+		performRenameRefactoring_failing(new String[] { "R1", "T1", "T2" }, "R1", "R2", true);
+	}
+
+	public void testShadowedNameRoleFile5() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T2", "T1", "RT" }, "R1", "R2", true);
+	}
+
+	public void testShadowedNameRoleFile6() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T2", "T1", "R2" }, "R1", "R2", true);
+	}
+		
+	public void testImplicitOverridingWithRoleFile1() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T2", "T1", "R1" }, "R", "R1", true);
+	}
+
+	 public void testImplicitOverridingWithRoleFile2() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T", "R1", "T1" }, "R", "R1", true);
+	}
+	
+	// failing
+	
+	// FIXME(jogeb): phantom roles within phantom roles wont be found by the
+	// OTTypeHierarchy or change strategy in RenameTypeAdapter
+	public void _testShadowedNameOfSubType2() throws Exception {
+		performRenameRefactoring_failing(new String[] { "T1", "T2" }, "R1", "R2", false);
+	}
+
+	public void _testShadowedNameRoleFile4() throws Exception {
+		performRenameRefactoring_failing(new String[] { "RT", "T1", "T2" }, "R1", "R2", true);
+	}
+		
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameVirtualMethodInClassTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameVirtualMethodInClassTests.java
new file mode 100644
index 0000000..1fb7482
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/rename/RenameVirtualMethodInClassTests.java
@@ -0,0 +1,283 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.rename;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor;
+import org.eclipse.ltk.core.refactoring.RefactoringCore;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;
+
+/**
+ * @author brcan
+ * 
+ */
+public class RenameVirtualMethodInClassTests extends RefactoringTest {
+	private static final String REFACTORING_PATH = "RenameVirtualMethodInClass/";
+
+	public RenameVirtualMethodInClassTests(String name) {
+		super(name);
+	}
+
+	public static Test suite() {
+		return new MySetup(new TestSuite(RenameVirtualMethodInClassTests.class));
+	}
+
+	public static Test setUpTest(Test test) {
+		return new MySetup(test);
+	}
+
+	protected String getRefactoringPath() {
+		return REFACTORING_PATH;
+	}
+
+	private RenameRefactoring createRefactoring(RenameMethodProcessor processor) {
+		return new RenameRefactoring(processor);
+	}
+
+	private RenameMethodProcessor createProcessor(IMethod method) {
+		return new RenameVirtualMethodProcessor(method);
+	}
+
+	private void performRenaming_failing(String[] cuNames, String declaringTypeName, String[] signature, boolean updateReferences) throws Exception {
+		performRenameRefactoring_failing(cuNames, declaringTypeName, "m", "k", signature, updateReferences);
+	}
+
+	private void performRenameRefactoring_failing(String[] cuNames, String declaringTypeName, String methodName, String newMethodName, String[] signatures,
+			boolean updateReferences) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		IType declaringType = getType(cus[0], declaringTypeName);
+		IMethod method = declaringType.getMethod(methodName, signatures);
+		RenameMethodProcessor processor = createProcessor(method);
+		RenameRefactoring ref = createRefactoring(processor);
+		processor.setUpdateReferences(updateReferences);
+		processor.setNewElementName(newMethodName);
+		RefactoringStatus result = performRefactoring(ref);
+
+		assertNotNull("precondition was supposed to fail!", result);
+	}
+
+	private void performRenaming_passing(String[] cuNames, String declaringTypeName) throws Exception {
+		performRenamingMtoK_passing(cuNames, declaringTypeName, true);
+	}
+
+	private void performRenamingMtoK_passing(String[] cuNames, String declaringTypeName, boolean updateReferences) throws Exception {
+		performRenameRefactoring_passing(cuNames, declaringTypeName, "m", "k", new String[0], true, updateReferences);
+	}
+
+	private void performRenameRefactoring_passing(String[] cuNames, String declaringTypeName, String methodName, String newMethodName, String[] signatures,
+			boolean shouldPass, boolean updateReferences) throws Exception {
+		ICompilationUnit[] cus = createCUs(cuNames);
+		IType declaringType = getType(cus[0], declaringTypeName);
+		IMethod method = declaringType.getMethod(methodName, signatures);
+		RenameMethodProcessor processor = createProcessor(method);
+		RenameRefactoring ref = createRefactoring(processor);
+		processor.setUpdateReferences(updateReferences);
+		processor.setNewElementName(newMethodName);
+		RefactoringStatus status = performRefactoring(ref);
+
+		assertEquals("was supposed to pass!", null, status);
+		if (!shouldPass) {
+			for (int idx = 0; idx < cus.length; idx++) {
+				assertTrue("incorrect renaming because of java model!", !getFileContents(createOutputTestFileName(cus, idx)).equals(cus[idx].getSource()));
+			}
+			return;
+		}
+
+		for (int idx = 0; idx < cus.length; idx++) {
+			String expectedRenaming = getFileContents(createOutputTestFileName(cus, idx));
+			String actualRenaming = cus[idx].getSource();
+			assertEqualLines("incorrect renaming!", expectedRenaming, actualRenaming);
+		}
+		assertTrue("anythingToUndo", RefactoringCore.getUndoManager().anythingToUndo());
+		assertTrue("! anythingToRedo", !RefactoringCore.getUndoManager().anythingToRedo());
+
+		RefactoringCore.getUndoManager().performUndo(null, new NullProgressMonitor());
+
+		for (int idx = 0; idx < cus.length; idx++) {
+			assertEqualLines("invalid undo!", getFileContents(createInputTestFileName(cus, idx)), cus[idx].getSource());
+		}
+		assertTrue("! anythingToUndo", !RefactoringCore.getUndoManager().anythingToUndo());
+		assertTrue("anythingToRedo", RefactoringCore.getUndoManager().anythingToRedo());
+
+		RefactoringCore.getUndoManager().performRedo(null, new NullProgressMonitor());
+		for (int idx = 0; idx < cus.length; idx++) {
+			assertEqualLines("invalid redo", getFileContents(createOutputTestFileName(cus, idx)), cus[idx].getSource());
+		}
+	}
+
+	private String createInputTestFileName(ICompilationUnit[] cus, int idx) {
+		return getInputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+	}
+
+	private String createOutputTestFileName(ICompilationUnit[] cus, int idx) {
+		return getOutputTestFileName(getSimpleNameOfCu(cus[idx].getElementName()));
+	}
+
+	private String getSimpleNameOfCu(String compUnit) {
+		int dot = compUnit.lastIndexOf('.');
+		return compUnit.substring(0, dot);
+	}
+
+	private ICompilationUnit[] createCUs(String[] cuNames) throws Exception {
+		ICompilationUnit[] cus = new ICompilationUnit[cuNames.length];
+
+		for (int idx = 0; idx < cuNames.length; idx++) {
+			Assert.isNotNull(cuNames[idx]);
+			cus[idx] = createCUfromTestFile(getPackageP(), cuNames[idx]);
+		}
+		return cus;
+	}
+
+	/********** tests **********/
+
+	public void testUpdateDeclarationOfOverridingRoleMethod() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceToBaseMethodInCallinBinding() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceToBaseMethodInCallinBindings1() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceToBaseMethodInCallinBindings2() throws Exception {
+		performRenaming_passing(new String[] { "B", "T1", "T2" }, "B");
+	}
+
+	public void testUpdateReferenceToBaseMethodInCalloutBinding1() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceToBaseMethodInCalloutBinding2() throws Exception {
+		performRenameRefactoring_passing(new String[] { "B", "T" }, "B", "getAmount", "getQuantity", new String[0], true, true);
+	}
+
+	public void testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceInFieldInitializationInRole() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceInFieldInitializationInTeam() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding() throws Exception {
+		performRenaming_passing(new String[] { "B", "T1", "T2" }, "B");
+	}
+
+	public void testUpdateReferenceInRoleMethod() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceInTeamMethod() throws Exception {
+		performRenaming_passing(new String[] { "B", "T" }, "B");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethod() throws Exception {
+		performRenaming_passing(new String[] { "S", "T" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInCallinBinding() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInCallinBindings1() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInCallinBindings2() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T1", "T2" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T1", "T2" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T1", "T2" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole() throws Exception {
+		performRenaming_passing(new String[] { "S", "B", "T1", "T2" }, "S");
+	}
+
+	public void testUpdateReferenceToOverridingRoleMethodInTsuperCall() throws Exception {
+		performRenaming_passing(new String[] { "S", "T1", "T2" }, "S");
+	}
+
+	public void testRenamePrivateMethodInRoleclass() throws Exception {
+		performRenaming_passing(new String[] { "T" }, "R");
+	}
+
+	public void testRenamePrivateAbstractMethodInRoleclass() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T", "B" }, "R", "m1", "m3", new String[0], true, true);
+	}
+
+	public void testRenamePrivateMethodInNestedTeam() throws Exception {
+		performRenaming_passing(new String[] { "T" }, "TR");
+	}
+
+	public void testUpdateImplicitlyInheritedAndOverridingPrivateMethod1() throws Exception {
+		performRenaming_passing(new String[] { "T1", "T2" }, "R1");
+	}
+
+	public void testUpdateImplicitlyInheritedAndOverridingPrivateMethod2() throws Exception {
+		performRenaming_passing(new String[] { "T1", "T2" }, "TR1");
+	}
+
+	public void testUpdateReferenceToPrivateRoleMethodInCalloutBinding() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T1", "T2", "B" }, "R", "m1", "m3", new String[0], true, true);
+	}
+
+	public void testUpdateReferenceToPrivateRoleMethodInCallinBinding() throws Exception {
+		performRenameRefactoring_passing(new String[] { "T", "B" }, "R", "m1", "m3", new String[0], true, true);
+	}
+
+	public void testUpdateMethodToCauseAmbiguousCallinBinding1() throws Exception {
+		// performRenaming_passing(new String[] { "B", "T" }, "B");
+		performRenaming_failing(new String[] { "B", "T" }, "B", new String[0], true);
+	}
+
+	public void testUpdateMethodToCauseAmbiguousCallinBinding2() throws Exception {
+		performRenaming_failing(new String[] { "B", "T" }, "B", new String[0], true);
+	}
+
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/AllTests.java
new file mode 100644
index 0000000..e49650a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/AllTests.java
@@ -0,0 +1,53 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ * 

+ * Runs all OT-specific refactoring tests and corresponding eclipse refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-Reorg Refactoring Tests");

+

+        //copy & paste, delete (cut)

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTCopyToClipboardTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTDeleteTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.PasteActionTest.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTPasteActionTest.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/MockReorgQueries.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/MockReorgQueries.java
new file mode 100644
index 0000000..135ba8a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/MockReorgQueries.java
@@ -0,0 +1,70 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg;

+

+import java.util.ArrayList;

+import java.util.List;

+

+import org.eclipse.core.runtime.OperationCanceledException;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.IConfirmQuery;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgQueries;

+

+/**

+ * @author brcan

+ */

+public class MockReorgQueries implements IReorgQueries

+{

+    private final List fQueriesRun= new ArrayList();

+

+    public IConfirmQuery createYesNoQuery(String queryTitle, boolean allowCancel, int queryID) {

+        run(queryID);

+        return yesQuery;

+    }

+

+    public IConfirmQuery createYesYesToAllNoNoToAllQuery(String queryTitle, boolean allowCancel, int queryID) {

+        run(queryID);

+        return yesQuery;

+    }

+

+    private void run(int queryID) {

+        fQueriesRun.add(new Integer(queryID));

+    }

+

+    //List<Integer>

+    public List getRunQueryIDs() {

+        return fQueriesRun;

+    }

+

+    private final IConfirmQuery yesQuery= new IConfirmQuery() {

+        public boolean confirm(String question) throws OperationCanceledException {

+            return true;

+        }

+

+        public boolean confirm(String question, Object[] elements) throws OperationCanceledException {

+            return true;

+        }

+    };

+

+    public IConfirmQuery createSkipQuery(String queryTitle, int queryID) {

+        run(queryID);

+        return yesQuery;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTCopyToClipboardTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTCopyToClipboardTests.java
new file mode 100644
index 0000000..2aa845f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTCopyToClipboardTests.java
@@ -0,0 +1,573 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/

+package org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg;

+

+import java.util.Arrays;

+import java.util.Comparator;

+import java.util.List;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+import org.eclipse.core.resources.IResource;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IField;

+import org.eclipse.jdt.core.IJavaElement;

+import org.eclipse.jdt.core.IMethod;

+import org.eclipse.jdt.core.ISourceManipulation;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.internal.corext.refactoring.TypedSource;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaElementTransfer;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgUtils;

+import org.eclipse.jdt.internal.corext.util.Strings;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.CopyToClipboardAction;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.TypedSourceTransfer;

+import org.eclipse.jdt.ui.JavaElementLabelProvider;

+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTest;

+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTestSetup;

+import org.eclipse.jdt.ui.tests.refactoring.infra.MockClipboard;

+import org.eclipse.jdt.ui.tests.refactoring.infra.MockWorkbenchSite;

+import org.eclipse.jface.viewers.ILabelProvider;

+import org.eclipse.swt.dnd.Clipboard;

+import org.eclipse.swt.dnd.FileTransfer;

+import org.eclipse.swt.dnd.TextTransfer;

+import org.eclipse.swt.widgets.Display;

+import org.eclipse.ui.part.ResourceTransfer;

+import org.eclipse.objectteams.otdt.core.ICallinMapping;

+import org.eclipse.objectteams.otdt.core.ICalloutMapping;

+import org.eclipse.objectteams.otdt.core.ICalloutToFieldMapping;

+import org.eclipse.objectteams.otdt.core.IMethodMapping;

+import org.eclipse.objectteams.otdt.core.IOTJavaElement;

+import org.eclipse.objectteams.otdt.core.IRoleType;

+import org.eclipse.objectteams.otdt.core.OTModelManager;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.OTRefactoringTestSetup;

+

+//{OT_COPY_PASTE: Copy of class org.eclipse.jdt.ui.tests.reorg.CopyToClipboardActionTest

+//Reason: adapt tests for the OTCopyToClipboardAction, add additional tests for OT elements

+//        remove tests which won't work with the given OT type declarations

+//		  test enumeration is kept, new OT tests are testEnabledOT0 - testEnabledOT6

+@SuppressWarnings("restriction")

+public class OTCopyToClipboardTests extends RefactoringTest

+{

+    private static final String CU_T1_NAME = "T1";

+    private static final String CU_B1_NAME = "B1";

+

+    private ILabelProvider         _labelProvider;

+    private Clipboard              _clipboard;

+    private ICompilationUnit       _cuT1;

+    private ICompilationUnit       _cuB1;

+	

+	public OTCopyToClipboardTests(String name) {

+		super(name);

+	}

+

+	public static Test suite() {

+		return new OTRefactoringTestSetup(new TestSuite(OTCopyToClipboardTests.class));

+	}

+

+	protected void setUp() throws Exception

+    {

+        super.setUp();

+        _clipboard = new MockClipboard(Display.getDefault());

+        

+        _cuT1 = createCU(getPackageP(), CU_T1_NAME + ".java", 

+                "package p;" + "\n" +

+                "import java.util.List;" + "\n" +

+                "public team class T1" + "\n" +

+                "{" + "\n" +

+                "int x;" + "\n" +

+                "public void t1m(){}" + "\n" +

+                "public team class TR1" + "\n" +

+                "{" + "\n" +

+                "public void tr1m(){}" + "\n" +

+                "public class R1 extends S1 playedBy B1" + "\n" +

+                "{" + "\n" +

+                "public abstract int rm();" + "\n" +

+                "rm -> bm;" + "\n" +

+                "sm <- after bm;" + "\n" +

+                "rm => get x;" + "\n" +

+                "}" + "\n" +

+                "}" + "\n" +

+                "}");

+

+        _cuB1 = createCU(getPackageP(), CU_B1_NAME + ".java", 

+                "package p;" + "\n" +

+                "public class B1" + "\n" +

+                "{" + "\n" +

+                "private int x;" + "\n" +

+                "public int bm(){}" + "\n" +

+                "}");

+

+        _labelProvider = new JavaElementLabelProvider(

+                JavaElementLabelProvider.SHOW_VARIABLE + 

+                JavaElementLabelProvider.SHOW_PARAMETERS + 

+                JavaElementLabelProvider.SHOW_TYPE);

+

+        assertTrue("T1.java does not exist", _cuT1.exists());

+        assertTrue("B1.java does not exist", _cuB1.exists());

+    }

+    

+    protected void tearDown() throws Exception

+    {

+        super.tearDown();

+        performDummySearch();

+        _clipboard.dispose();

+        _labelProvider.dispose();

+        delete(_cuT1);

+        delete(_cuB1);

+    }	

+	

+	private static void delete(ISourceManipulation element) {

+		try {

+			if (element != null && ((IJavaElement)element).exists())

+				element.delete(true, null);

+		} catch(JavaModelException e) {

+			//ignore, we must keep going

+		}		

+	}

+	

+	private void checkDisabled(Object[] elements){

+		CopyToClipboardAction copyAction= new CopyToClipboardAction(new MockWorkbenchSite(elements), _clipboard);

+		copyAction.setAutoRepeatOnFailure(true);

+		copyAction.update(copyAction.getSelection());

+		assertTrue("action should be disabled", ! copyAction.isEnabled());

+	}

+

+	private void checkEnabled(Object[] elements) throws Exception{

+		CopyToClipboardAction copyAction= new CopyToClipboardAction(new MockWorkbenchSite(elements), _clipboard);

+		copyAction.setAutoRepeatOnFailure(true);

+		copyAction.update(copyAction.getSelection());

+		assertTrue("action should be enabled", copyAction.isEnabled());

+		copyAction.run();

+		checkClipboard(elements);

+	}

+

+	private void checkClipboard(Object[] elementsCopied) throws Exception {

+		IResource[] resourcesCopied= getResources(elementsCopied);

+		IJavaElement[] javaElementsCopied= getJavaElements(elementsCopied);

+		IType[] mainTypesCopied= ReorgUtils.getMainTypes(javaElementsCopied);

+		

+		IResource[] resourcesExpected= computeResourcesExpectedInClipboard(resourcesCopied, mainTypesCopied, javaElementsCopied);

+		IJavaElement[] javaElementsExpected= computeJavaElementsExpectedInClipboard(javaElementsCopied, mainTypesCopied);

+		

+		String[] clipboardFiles= getClipboardFiles();

+		IResource[] clipboardResources= getClipboardResources();

+		String clipboardText= getClipboardText();

+		IJavaElement[] clipboardJavaElements= getClipboardJavaElements();

+		TypedSource[] clipboardTypedSources= getClipboardTypedSources();

+

+		checkNames(resourcesCopied, javaElementsCopied, clipboardText);

+		checkFiles(resourcesCopied, javaElementsCopied, mainTypesCopied, clipboardFiles);

+		checkTypedSources(javaElementsCopied, clipboardTypedSources);

+		checkElements(resourcesExpected, clipboardResources);

+		checkElements(javaElementsExpected, clipboardJavaElements);

+	}

+	

+	private void checkTypedSources(IJavaElement[] javaElementsCopied, TypedSource[] clipboardTypedSources) throws Exception {

+		TypedSource[] typedSources= TypedSource.createTypedSources(javaElementsCopied);

+		assertEquals("different number", typedSources.length, clipboardTypedSources.length);		

+		TypedSource.sortByType(typedSources);

+		TypedSource.sortByType(clipboardTypedSources);

+		for (int i= 0; i < typedSources.length; i++) {

+			assertEquals("different typed sources", typedSources[i], clipboardTypedSources[i]);

+		}

+	}

+

+	private IResource[] computeResourcesExpectedInClipboard(IResource[] resourcesCopied, IType[] mainTypesCopied, IJavaElement[] javaElementsCopied) throws JavaModelException {

+		IResource[] cuResources= ReorgUtils.getResources(getCompilationUnits(javaElementsCopied));

+		return ReorgUtils.union(cuResources, ReorgUtils.union(resourcesCopied, ReorgUtils.getResources(ReorgUtils.getCompilationUnits(mainTypesCopied))));

+	}

+

+	private static IJavaElement[] computeJavaElementsExpectedInClipboard(IJavaElement[] javaElementsExpected, IType[] mainTypesCopied) throws JavaModelException {

+		return ReorgUtils.union(javaElementsExpected, ReorgUtils.getCompilationUnits(mainTypesCopied));

+	}

+

+	private String getName(IResource resource){

+		return _labelProvider.getText(resource);

+	}

+	private String getName(IJavaElement javaElement){

+		return _labelProvider.getText(javaElement);

+	}

+

+	private static void checkElements(Object[] copied, Object[] retreivedFromClipboard) {

+		assertEquals("different number of elements", copied.length, retreivedFromClipboard.length);

+		sortByName(copied);

+		sortByName(retreivedFromClipboard);

+		for (int i= 0; i < retreivedFromClipboard.length; i++) {

+			Object retreived= retreivedFromClipboard[i];

+			assertTrue("element does not exist", exists(retreived));

+			assertTrue("different copied " + getName(copied[i]) + " retreived: " + getName(retreived) , copied[i].equals(retreivedFromClipboard[i]));

+		}

+	}

+

+	private static boolean exists(Object element) {

+		if (element instanceof IJavaElement)

+			return ((IJavaElement)element).exists();

+		if (element instanceof IResource)

+			return ((IResource)element).exists();

+		assertTrue(false);

+		return false;

+	}

+

+	private static String getName(Object object) {

+		if (object instanceof IJavaElement)

+			return ((IJavaElement)object).getElementName();

+		if (object instanceof IResource)

+			return ((IResource)object).getName();

+		return object == null ? null : object.toString();

+	}

+

+	private static void sortByName(Object[] copied) {

+		Arrays.sort(copied, new Comparator(){

+			public int compare(Object arg0, Object arg1) {

+				return getName(arg0).compareTo(getName(arg1));

+			}

+		});

+	}

+

+	private void checkNames(IResource[] resourcesCopied, IJavaElement[] javaElementsCopied, String clipboardText){

+		List stringLines= Arrays.asList(Strings.convertIntoLines(clipboardText));

+		assertEquals("different number of names", resourcesCopied.length + javaElementsCopied.length, stringLines.size());

+		for (int i= 0; i < resourcesCopied.length; i++) {

+			String name= getName(resourcesCopied[i]);

+			assertTrue("name not in set:" + name, stringLines.contains(name));

+		}

+		for (int i= 0; i < javaElementsCopied.length; i++) {

+			IJavaElement element= javaElementsCopied[i];

+			if (! ReorgUtils.isInsideCompilationUnit(element)){

+				String name= getName(element);

+				assertTrue("name not in set:" + name, stringLines.contains(name));				

+			}

+		}

+	}	

+	

+	private static void checkFiles(IResource[] resourcesCopied, IJavaElement[] javaElementsCopied, IType[] mainTypes, String[] clipboardFiles) {

+		int expected= 0;

+		expected += resourcesCopied.length;

+		expected += countResources(javaElementsCopied);

+		expected += mainTypes.length;

+		

+		//we cannot compare file names here because they're absolute and depend on the worspace location

+		assertEquals("different number of files in clipboard", expected, clipboardFiles.length);

+	}

+

+	private static int countResources(IJavaElement[] javaElementsCopied) {

+		int count= 0;

+		for (int i= 0; i < javaElementsCopied.length; i++) {

+			IJavaElement element= javaElementsCopied[i];

+			switch (element.getElementType()) {

+				case IJavaElement.JAVA_PROJECT :

+				case IJavaElement.PACKAGE_FRAGMENT_ROOT :

+				case IJavaElement.PACKAGE_FRAGMENT :

+				case IJavaElement.COMPILATION_UNIT :

+				case IJavaElement.CLASS_FILE :

+					count++;

+			}

+		}

+		return count;

+	}

+

+	private static IJavaElement[] getCompilationUnits(IJavaElement[] javaElements) {

+		List cus= ReorgUtils.getElementsOfType(javaElements, IJavaElement.COMPILATION_UNIT);

+		return (ICompilationUnit[]) cus.toArray(new ICompilationUnit[cus.size()]);

+	}

+

+	private static IResource[] getResources(Object[] elements) {

+		return ReorgUtils.getResources(Arrays.asList(elements));

+	}

+

+	private static IJavaElement[] getJavaElements(Object[] elements) {

+		return ReorgUtils.getJavaElements(Arrays.asList(elements));

+	}

+

+	private IJavaElement[] getClipboardJavaElements() {

+		IJavaElement[] elements= (IJavaElement[])_clipboard.getContents(JavaElementTransfer.getInstance());

+		return elements == null ? new IJavaElement[0]: elements; 

+	}

+

+	private String[] getClipboardFiles() {

+		String[] files= (String[])_clipboard.getContents(FileTransfer.getInstance());

+		return files == null ? new String[0]: files;

+	}

+	

+	private IResource[] getClipboardResources() {

+		IResource[] resources= (IResource[])_clipboard.getContents(ResourceTransfer.getInstance());

+		return resources == null ? new IResource[0]: resources; 

+	}

+

+	private TypedSource[] getClipboardTypedSources() {

+		TypedSource[] typedSources= (TypedSource[])_clipboard.getContents(TypedSourceTransfer.getInstance());

+		return typedSources == null ? new TypedSource[0]: typedSources; 

+	}

+

+	private String getClipboardText() {

+		return (String)_clipboard.getContents(TextTransfer.getInstance());

+	}

+	

+	///---------tests

+

+	public void testDisabled0() {

+		Object[] elements= {};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled1() throws Exception {

+		Object[] elements= {null};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled2() throws Exception {

+		Object[] elements= {this};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled3() throws Exception {

+		Object[] elements= {RefactoringTestSetup.getProject(), getPackageP()};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled4() throws Exception{

+		checkDisabled(new Object[]{getPackageP(), _cuT1});

+	}

+

+	public void testDisabled5() throws Exception{

+		checkDisabled(new Object[]{getRoot(), _cuT1});

+	}

+

+	public void testDisabled12() throws Exception{

+		checkDisabled(new Object[]{getRoot().getJavaProject(), _cuT1});

+	}

+

+	public void testDisabled15() throws Exception {

+		Object fieldF= _cuT1.getType("T1").getField("x");

+		Object classA= _cuT1.getType("T1");

+		Object[] elements= {fieldF, classA};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled16() throws Exception {

+		Object fieldF= _cuT1.getType("T1").getField("x");

+		Object[] elements= {fieldF, _cuT1};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled20() throws Exception {

+		Object fieldF= _cuT1.getType("T1").getField("x");

+		Object[] elements= {fieldF, getRoot()};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled21() throws Exception {

+		Object fieldF= _cuT1.getType("T1").getField("x");

+		Object[] elements= {fieldF, RefactoringTestSetup.getProject()};

+		checkDisabled(elements);

+	}	

+

+	public void testDisabled22() throws Exception {

+		Object typeT1= _cuT1.getType("T1");

+		Object typeB1= _cuB1.getType("B1");

+		Object[] elements= {typeT1, typeB1};

+		checkDisabled(elements);

+	}

+	

+	public void testEnabled0() throws Exception {

+		Object[] elements= {RefactoringTestSetup.getProject()};

+		checkEnabled(elements);

+	}	

+

+	public void testEnabled1() throws Exception {

+		Object[] elements= {getPackageP()};

+		checkEnabled(elements);

+	}	

+

+	public void testEnabled2() throws Exception {

+		Object[] elements= {getRoot()};

+		checkEnabled(elements);

+	}	

+

+	public void testEnabled3() throws Exception {

+		Object[] elements= {RefactoringTestSetup.getDefaultSourceFolder()};

+		checkEnabled(elements);

+	}

+	

+	public void testEnabled5() throws Exception{

+		checkEnabled(new Object[]{getRoot()});

+	}

+

+	public void testEnabled6() throws Exception{

+		checkEnabled(new Object[]{_cuT1});

+	}

+

+	public void testEnabled7() throws Exception{

+		checkEnabled(new Object[]{getRoot().getJavaProject()});

+	}

+		

+	public void testEnabled8() throws Exception{

+		checkEnabled(new Object[]{getPackageP()});

+	}

+	

+	public void testEnabled10() throws Exception{

+		Object packDecl= _cuT1.getPackageDeclarations()[0];

+		Object[] elements= {packDecl};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled11() throws Exception{

+		Object importD= _cuT1.getImports()[0];

+		Object[] elements= {importD};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled12() throws Exception{

+//		printTestDisabledMessage("disabled due to bug 37750");

+//		if (true)

+//			return;

+		IJavaElement importContainer= _cuT1.getImportContainer();

+		Object[] elements= {importContainer};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled13() throws Exception{

+		Object classA= _cuT1.getType("T1");

+		Object[] elements= {classA};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled14() throws Exception{

+		Object methodT1m= _cuT1.getType("T1").getMethod("t1m", new String[0]);

+		Object[] elements= {methodT1m};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled15() throws Exception{

+		Object fieldX= _cuT1.getType("T1").getField("x");

+		Object[] elements= {fieldX};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled19() throws Exception{

+//		printTestDisabledMessage("disabled due to bug 37750");

+//		if (true)

+//			return;

+

+		Object classA= _cuT1.getType("T1");

+		Object importContainer= _cuT1.getImportContainer();

+		Object packDecl= _cuT1.getPackageDeclarations()[0];

+		Object[] elements= {classA, importContainer, packDecl};

+		checkEnabled(elements);

+	}

+

+	public void testEnabled22() throws Exception{

+//		printTestDisabledMessage("bug 39410");

+		Object classA= _cuT1.getType("T1");

+		Object packDecl= _cuT1.getPackageDeclarations()[0];

+		Object[] elements= {classA, packDecl};

+		checkEnabled(elements);

+	}

+	

+	public void testEnabledOT0() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        IMethod methodTr1m = nestedTeamTR1.getMethod("tr1m", new String[0]);

+        Object[] elements = { methodTr1m };

+        checkEnabled(elements);

+    }

+

+    public void testEnabledOT1() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        Object elem = nestedTeamTR1.getType("R1");

+        if (elem instanceof IType)

+        {

+            IType type = (IType)elem;

+            IRoleType roleR1 = (IRoleType)OTModelManager.getOTElement(type); 

+            Object[] elements = { roleR1 };

+            checkEnabled(elements);

+        }

+    }

+

+    public void testEnabledOT2() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        IType type = nestedTeamTR1.getType("R1");

+        IRoleType roleR1 = (IRoleType)OTModelManager.getOTElement(type);

+        IMethod methodRm = roleR1.getMethod("rm", new String[0]);

+        Object[] elements = { methodRm };

+        checkEnabled(elements);

+    }

+

+    public void testEnabledOT3() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        IType type = nestedTeamTR1.getType("R1");

+        IRoleType roleR1 = (IRoleType)OTModelManager.getOTElement(type);

+        IMethodMapping[] mapping = roleR1.getMethodMappings(IRoleType.CALLOUTS);

+        ICalloutMapping callout = null;

+		for (int idx = 0; idx < mapping.length; idx++)

+        {

+            if (mapping[idx].getElementType() == IOTJavaElement.CALLOUT_MAPPING)

+            {

+		        callout = (ICalloutMapping)mapping[idx];

+            }

+        }

+        Object[] elements = { callout };

+        checkEnabled(elements);

+    }

+

+    public void testEnabledOT4() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        IType type = nestedTeamTR1.getType("R1");

+        IRoleType roleR1 = (IRoleType)OTModelManager.getOTElement(type);

+        IMethodMapping[] mapping = roleR1.getMethodMappings(IRoleType.CALLINS);

+        ICallinMapping callin = (ICallinMapping)mapping[0];

+        Object[] elements = { callin };

+        checkEnabled(elements);        

+    }

+

+    public void testEnabledOT5() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        IType type = nestedTeamTR1.getType("R1");

+        IRoleType roleR1 = (IRoleType)OTModelManager.getOTElement(type);

+        IMethodMapping[] mapping = roleR1.getMethodMappings(IRoleType.CALLOUTS);

+        ICalloutToFieldMapping calloutToField = null;

+		for (int idx = 0; idx < mapping.length; idx++)

+        {

+            if (mapping[idx].getElementType() == IOTJavaElement.CALLOUT_TO_FIELD_MAPPING)

+            {

+                calloutToField = (ICalloutToFieldMapping)mapping[idx];

+            }

+        }

+        Object[] elements = { calloutToField };

+        checkEnabled(elements);        

+    }

+

+    public void testEnabledOT6() throws Exception

+    {

+        IType teamT1 = _cuT1.getType("T1");

+        IField fieldX = teamT1.getField("x");

+        IMethod methodT1m = teamT1.getMethod("t1m", new String[0]);

+        IType nestedTeamTR1 = teamT1.getType("TR1");

+        Object[] elements = { fieldX, methodT1m, nestedTeamTR1 };

+        checkEnabled(elements);

+    }

+	

+	

+}

+//sko}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTDeleteTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTDeleteTests.java
new file mode 100644
index 0000000..8c0866e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTDeleteTests.java
@@ -0,0 +1,195 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IJavaElement;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgQueries;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaDeleteProcessor;

+import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgUtils;

+import org.eclipse.ltk.core.refactoring.RefactoringStatus;

+import org.eclipse.ltk.core.refactoring.participants.DeleteRefactoring;

+import org.eclipse.objectteams.otdt.core.IMethodMapping;

+import org.eclipse.objectteams.otdt.core.IRoleType;

+import org.eclipse.objectteams.otdt.core.OTModelManager;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;

+

+/**

+ * @author brcan

+ */

+public class OTDeleteTests extends RefactoringTest

+{

+    private static final String REFACTORING_PATH = "Delete/";

+    private static final String CU_NAME = "T";

+    private ICompilationUnit _cuT;

+

+    public OTDeleteTests(String name)

+    {

+        super(name);

+    }

+

+    public static Test suite()

+    {

+        return new MySetup(new TestSuite(OTDeleteTests.class));

+    }

+

+    public static Test setUpTest(Test someTest)

+    {

+        return new MySetup(someTest);

+    }

+

+    protected String getRefactoringPath()

+    {

+        return REFACTORING_PATH;

+    }

+

+    private void loadFileSetup() throws Exception

+    {

+        _cuT = createCUfromTestFile(getPackageP(), CU_NAME);

+        assertTrue("T.java does not exist", _cuT.exists());

+    }

+

+    private void checkDelete(IJavaElement[] elems, boolean deleteCu)

+        throws JavaModelException, Exception

+    {

+        ICompilationUnit newCuT = null;

+        try

+        {

+            DeleteRefactoring refactoring = createRefactoring(elems);

+            assertNotNull(refactoring);

+            RefactoringStatus status = performRefactoring(refactoring, true);

+            assertEquals("precondition was supposed to pass", null, status);

+

+            newCuT = getPackageP().getCompilationUnit(CU_NAME + ".java");

+            assertTrue("T.java does not exist", newCuT.exists() == !deleteCu);

+            if (!deleteCu)

+            {

+                assertEqualLines(

+                        "incorrect content of T.java",

+                        getFileContents(getOutputTestFileName(CU_NAME)),

+                        newCuT.getSource());

+            }

+        }

+        finally

+        {

+            performDummySearch();

+            if (newCuT != null && newCuT.exists())

+            {

+                newCuT.delete(true, null);

+            }

+            if (_cuT != null && _cuT.exists())

+            {

+                _cuT.delete(true, null);

+                _cuT = null;

+            }

+        }

+    }

+

+    private DeleteRefactoring createRefactoring(Object[] elements)

+        throws CoreException

+    {

+        JavaDeleteProcessor processor = new JavaDeleteProcessor(elements);

+        DeleteRefactoring result = new DeleteRefactoring(processor);

+        processor.setQueries(createReorgQueries());

+        return result;

+    }

+

+    private IReorgQueries createReorgQueries()

+    {

+        return new MockReorgQueries();

+    }

+

+    //---- tests ----    

+    public void testDeleteTeamclass() throws Exception

+    {

+//      ParticipantTesting.reset();

+        loadFileSetup();

+        IJavaElement aTeam = _cuT.getType("T");

+        IJavaElement[] elems = new IJavaElement[] { aTeam };

+        checkDelete(elems, true);

+//      String[] handles = ParticipantTesting.createHandles(elem0);

+//      ParticipantTesting.testDelete(handles);        

+    }

+    

+    public void testDeleteNestedTeamclass() throws Exception

+    {

+        loadFileSetup();

+        IJavaElement nestedTeam = _cuT.getType("T").getType("TR");

+        IJavaElement[] elems = new IJavaElement[] { nestedTeam };

+        checkDelete(elems, false);

+    }

+

+    public void testDeleteRoleclass() throws Exception

+    {

+    	loadFileSetup();

+    	IType type = _cuT.getType("T").getType("R");

+    	IRoleType role = (IRoleType)OTModelManager.getOTElement(type); 

+    	IJavaElement[] elems = new IJavaElement[] { role };

+    	checkDelete(elems, false);

+    }

+

+    @SuppressWarnings("restriction")

+	public void testGetRoleclassName() throws Exception

+    {

+    	loadFileSetup();

+    	IType type = _cuT.getType("T").getType("R");

+    	IRoleType role = (IRoleType)OTModelManager.getOTElement(type); 

+    	String message1= ReorgUtils.getName(role);

+    	assertEquals("role 'R'", message1);

+    }

+

+    public void testDeleteCalloutMapping() throws Exception

+    {

+    	loadFileSetup();

+    	IType type = _cuT.getType("T").getType("R");

+    	IRoleType role = (IRoleType)OTModelManager.getOTElement(type); 

+    	IMethodMapping[] mappings = role.getMethodMappings(); 

+    	IJavaElement[] elems = new IJavaElement[] { mappings[0] };

+    	checkDelete(elems, false);

+    }

+

+    public void testDeleteCalloutToFieldMapping() throws Exception

+    {

+    	loadFileSetup();

+    	IType type = _cuT.getType("T").getType("R");

+    	IRoleType role = (IRoleType)OTModelManager.getOTElement(type); 

+    	IMethodMapping[] mappings = role.getMethodMappings(); 

+    	IJavaElement[] elems = new IJavaElement[] { mappings[0] };

+    	checkDelete(elems, false);

+    }

+

+    public void testDeleteCallinMapping() throws Exception

+    {

+    	loadFileSetup();

+    	IType type = _cuT.getType("T").getType("R");

+    	IRoleType role = (IRoleType)OTModelManager.getOTElement(type); 

+    	IMethodMapping[] mappings = role.getMethodMappings(); 

+    	IJavaElement[] elems = new IJavaElement[] { mappings[0] };

+    	checkDelete(elems, false);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTPasteActionTest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTPasteActionTest.java
new file mode 100644
index 0000000..9825346
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/OTPasteActionTest.java
@@ -0,0 +1,372 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/

+package org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg;

+

+import java.io.IOException;

+import java.util.Arrays;

+import java.util.HashSet;

+import java.util.Set;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.runtime.NullProgressMonitor;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IImportDeclaration;

+import org.eclipse.jdt.core.IJavaElement;

+import org.eclipse.jdt.core.IPackageFragment;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.ui.tests.refactoring.infra.MockClipboard;

+import org.eclipse.jdt.ui.tests.refactoring.infra.MockWorkbenchSite;

+import org.eclipse.jface.viewers.IStructuredSelection;

+import org.eclipse.swt.dnd.Clipboard;

+import org.eclipse.swt.widgets.Display;

+import org.eclipse.objectteams.otdt.core.IMethodMapping;

+import org.eclipse.objectteams.otdt.core.IRoleType;

+import org.eclipse.objectteams.otdt.core.OTModelManager;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.MySetup;

+import org.eclipse.objectteams.otdt.ui.tests.refactoring.RefactoringTest;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.CopyToClipboardAction;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction;

+

+

+public class OTPasteActionTest extends RefactoringTest

+{

+

+	private Clipboard _clipboard;

+	private IPackageFragment	_packageQ;

+	private static final String REFACTORING_PATH= "Paste/";

+

+	public OTPasteActionTest(String name) {

+		super(name);

+	}

+	

+	public static Test suite() {

+		return new MySetup(new TestSuite(OTPasteActionTest.class));

+	}

+

+	protected String getRefactoringPath() {

+		return REFACTORING_PATH;

+	}

+

+	protected void setUp() throws Exception {

+		super.setUp();

+		_clipboard= new MockClipboard(Display.getDefault());

+		_packageQ = MySetup.getDefaultSourceFolder().createPackageFragment("q", true, null);

+	}

+	

+	protected void tearDown() throws Exception 

+	{

+		if (_packageQ.exists())

+        {

+            _packageQ.delete(true, null);

+        }

+		_clipboard.dispose();

+		super.tearDown();

+	}

+

+	private static Object[] merge(Object[] array1, Object[] array2) {

+		Set elements= new HashSet(array1.length + array2.length);

+		elements.addAll(Arrays.asList(array1));

+		elements.addAll(Arrays.asList(array2));

+		return elements.toArray();

+	}

+	

+	private PasteAction verifyEnabled(IResource[] copySelectedResources, IJavaElement[] copySelectedJavaElements, IResource[] pasteSelectedResources, IJavaElement[] pasteSelectedJavaElements) throws JavaModelException {

+		PasteAction pasteAction= new PasteAction(new MockWorkbenchSite(merge(pasteSelectedResources, pasteSelectedJavaElements)), _clipboard);

+		CopyToClipboardAction copyToClipboardAction= new CopyToClipboardAction(new MockWorkbenchSite(merge(copySelectedResources, copySelectedJavaElements)), _clipboard);

+		copyToClipboardAction.setAutoRepeatOnFailure(true);

+		copyToClipboardAction.update(copyToClipboardAction.getSelection());

+		assertTrue("copy not enabled", copyToClipboardAction.isEnabled());

+		copyToClipboardAction.run();

+		

+		pasteAction.update(pasteAction.getSelection());

+		assertTrue("paste should be enabled", pasteAction.isEnabled());

+		return pasteAction;

+	}

+

+	private void compareContents(String cuName) throws JavaModelException, IOException {

+		assertEqualLines(cuName, getFileContents(getOutputTestFileName(cuName)), getPackageP().getCompilationUnit(cuName + ".java").getSource());

+	}

+	

+	private void delete(ICompilationUnit cu) throws Exception {

+		try {

+			performDummySearch();

+			cu.delete(true, new NullProgressMonitor());

+		} catch (JavaModelException e) {

+			e.printStackTrace();

+			//ingore and keep going

+		}

+	}

+

+	public void testPasteTeamclassIntoTeamclass() throws Exception

+	{

+		ICompilationUnit cuTSource = createCUfromTestFile(getPackageP(),

+			"TSource");

+		ICompilationUnit cuTDest = createCUfromTestFile(getPackageP(),

+			"TDest");

+

+		try

+		{

+			IType teamTSource = cuTSource.getType("TSource");

+			IType teamTDest = cuTDest.getType("TDest");

+			

+			assertTrue("TSource does not exist", teamTSource.exists());

+			assertTrue("TDest does not exist", teamTDest.exists());

+

+			IJavaElement[] copyJavaElements = { teamTSource };

+			IResource[] copyResources = {};

+			IJavaElement[] pasteJavaElements = { teamTDest };

+			IResource[] pasteResources = {};

+			PasteAction paste = verifyEnabled(copyResources,

+					copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			

+			compareContents("TSource");

+			compareContents("TDest");

+		}

+		finally

+		{

+			delete(cuTSource);

+		}

+	}

+	

+	public void testPasteNestedTeamclass() throws Exception

+	{

+		ICompilationUnit cuTSource = createCUfromTestFile(getPackageP(),

+				"TSource");

+		ICompilationUnit cuTDest = createCUfromTestFile(getPackageP(), "TDest");

+

+		try

+		{

+			IType teamTDest_TN = cuTSource.getType("TSource").getType("TN");

+			IType teamTDest = cuTDest.getType("TDest");

+

+			assertTrue("TSource.TN does not exist", teamTDest_TN.exists());

+			assertTrue("TDest does not exist", teamTDest.exists());

+

+			IJavaElement[] copyJavaElements = { teamTDest_TN };

+			IResource[] copyResources = {};

+			IJavaElement[] pasteJavaElements = { teamTDest };

+			IResource[] pasteResources = {};

+			PasteAction paste = verifyEnabled(copyResources,

+					copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		}

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+

+	public void testPasteRoleclass() throws Exception

+	{

+		ICompilationUnit cuTSource = createCUfromTestFile(getPackageP(),

+				"TSource");

+		ICompilationUnit cuTDest = createCUfromTestFile(getPackageP(), "TDest");

+

+		try

+		{

+			IType roleR = cuTSource.getType("TSource").getType("R");

+			IType teamTDest = cuTDest.getType("TDest");

+

+			assertTrue("R does not exist", roleR.exists());

+			assertTrue("TDest does not exist", teamTDest.exists());

+

+			IJavaElement[] copyJavaElements = { roleR };

+			IResource[] copyResources = {};

+			IJavaElement[] pasteJavaElements = { teamTDest };

+			IResource[] pasteResources = {};

+			PasteAction paste = verifyEnabled(copyResources,

+					copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		}

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+

+	public void testPasteCalloutMapping() throws Exception

+	{

+		ICompilationUnit cuTSource= createCUfromTestFile(getPackageP(), "TSource");

+		ICompilationUnit cuTDest= createCUfromTestFile(getPackageP(), "TDest");

+		

+		try 

+		{

+			IRoleType roleSrc = (IRoleType)OTModelManager.getOTElement(cuTSource.getType("TSource").getType("R"));

+			IMethodMapping calloutMapping = roleSrc.getMethodMappings()[0];

+			IType roleTDest_R = cuTDest.getType("TDest").getType("R");

+	

+			assertTrue("callout does not exist", calloutMapping.exists());

+			assertTrue("R does not exist", roleTDest_R.exists());

+	

+			IJavaElement[] copyJavaElements= {calloutMapping};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {roleTDest_R};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		} 

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+

+	public void testPasteCalloutMappingParam() throws Exception

+	{

+		ICompilationUnit cuTSource= createCUfromTestFile(getPackageP(), "TSource");

+		ICompilationUnit cuTDest= createCUfromTestFile(getPackageP(), "TDest");

+		

+		try 

+		{

+			IRoleType roleSrc = (IRoleType)OTModelManager.getOTElement(cuTSource.getType("TSource").getType("R"));

+			IMethodMapping calloutMapping = roleSrc.getMethodMappings()[0];

+			IType roleTDest_R = cuTDest.getType("TDest").getType("R");

+	

+			assertTrue("callout does not exist", calloutMapping.exists());

+			assertTrue("R does not exist", roleTDest_R.exists());

+	

+			IJavaElement[] copyJavaElements= {calloutMapping};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {roleTDest_R};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		} 

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+

+	public void testPasteCallinMappingParam() throws Exception

+	{

+		ICompilationUnit cuTSource= createCUfromTestFile(getPackageP(), "TSource");

+		ICompilationUnit cuTDest= createCUfromTestFile(getPackageP(), "TDest");

+		

+		try 

+		{

+			IRoleType roleSrc = (IRoleType)OTModelManager.getOTElement(cuTSource.getType("TSource").getType("R"));

+			IMethodMapping calloutMapping = roleSrc.getMethodMappings()[0];

+			IType roleTDest_R = cuTDest.getType("TDest").getType("R");

+	

+			assertTrue("callout does not exist", calloutMapping.exists());

+			assertTrue("R does not exist", roleTDest_R.exists());

+	

+			IJavaElement[] copyJavaElements= {calloutMapping};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {roleTDest_R};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		} 

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+

+	public void testPasteCalloutToFieldMapping() throws Exception

+	{

+		ICompilationUnit cuTSource = createCUfromTestFile(getPackageP(),

+				"TSource");

+		ICompilationUnit cuTDest = createCUfromTestFile(getPackageP(), "TDest");

+

+		try

+		{

+			IRoleType roleSrc = (IRoleType)OTModelManager

+					.getOTElement(cuTSource.getType("TSource").getType("R"));

+			IMethodMapping calloutToFieldMapping = roleSrc.getMethodMappings()[0];

+			IType roleTDest_R = cuTDest.getType("TDest").getType("R");

+

+			assertTrue("callout does not exist", calloutToFieldMapping.exists());

+			assertTrue("R does not exist", roleTDest_R.exists());

+

+			IJavaElement[] copyJavaElements = { calloutToFieldMapping };

+			IResource[] copyResources = {};

+			IJavaElement[] pasteJavaElements = { roleTDest_R };

+			IResource[] pasteResources = {};

+			PasteAction paste = verifyEnabled(copyResources,

+					copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		}

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+	

+	public void testPasteCallinMapping() throws Exception

+	{

+		ICompilationUnit cuTSource = createCUfromTestFile(getPackageP(),

+				"TSource");

+		ICompilationUnit cuTDest = createCUfromTestFile(getPackageP(), "TDest");

+

+		try

+		{

+			IRoleType roleSrc = (IRoleType)OTModelManager

+					.getOTElement(cuTSource.getType("TSource").getType("R"));

+			IMethodMapping callinMapping = roleSrc.getMethodMappings()[0];

+			IType roleTDest_R = cuTDest.getType("TDest").getType("R");

+

+			assertTrue("callout does not exist", callinMapping.exists());

+			assertTrue("R does not exist", roleTDest_R.exists());

+

+			IJavaElement[] copyJavaElements = { callinMapping };

+			IResource[] copyResources = {};

+			IJavaElement[] pasteJavaElements = { roleTDest_R };

+			IResource[] pasteResources = {};

+			PasteAction paste = verifyEnabled(copyResources,

+					copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("TSource");

+			compareContents("TDest");

+		}

+		finally

+		{

+			delete(cuTSource);

+			delete(cuTDest);

+		}

+	}

+	

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/PasteActionTest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/PasteActionTest.java
new file mode 100644
index 0000000..52c607c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/reorg/PasteActionTest.java
@@ -0,0 +1,454 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/

+package org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg;

+

+import java.io.IOException;

+import java.util.Arrays;

+import java.util.HashSet;

+import java.util.Set;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+import org.eclipse.core.resources.IFolder;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.IAdaptable;

+import org.eclipse.core.runtime.NullProgressMonitor;

+import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IField;

+import org.eclipse.jdt.core.IImportContainer;

+import org.eclipse.jdt.core.IJavaElement;

+import org.eclipse.jdt.core.IMethod;

+import org.eclipse.jdt.core.IType;

+import org.eclipse.jdt.core.JavaModelException;

+import org.eclipse.jdt.internal.corext.refactoring.TypedSource;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.CopyToClipboardAction;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction;

+import org.eclipse.jdt.internal.ui.refactoring.reorg.TypedSourceTransfer;

+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTest;

+import org.eclipse.jdt.ui.tests.refactoring.RefactoringTestSetup;

+import org.eclipse.jdt.ui.tests.refactoring.infra.MockClipboard;

+import org.eclipse.jdt.ui.tests.refactoring.infra.MockWorkbenchSite;

+import org.eclipse.jface.viewers.IStructuredSelection;

+import org.eclipse.swt.SWTError;

+import org.eclipse.swt.dnd.Clipboard;

+import org.eclipse.swt.dnd.DND;

+import org.eclipse.swt.dnd.Transfer;

+import org.eclipse.swt.widgets.Display;

+import org.eclipse.ui.IWorkingSet;

+import org.eclipse.ui.PlatformUI;

+

+

+public class PasteActionTest extends RefactoringTest{

+

+	private Clipboard _clipboard;

+	private static final String REFACTORING_PATH= "Paste/";

+

+	public PasteActionTest(String name) {

+		super(name);

+	}

+	

+	public static Test suite() {

+		return new RefactoringTestSetup(new TestSuite(PasteActionTest.class));

+	}

+

+	protected String getRefactoringPath() {

+		return REFACTORING_PATH;

+	}

+

+	protected void setUp() throws Exception {

+		super.setUp();

+		_clipboard= new MockClipboard(Display.getDefault());

+	}

+	protected void tearDown() throws Exception {

+		super.tearDown();

+		_clipboard.dispose();

+	}

+

+	private static Object[] merge(Object[] array1, Object[] array2) {

+		Set elements= new HashSet(array1.length + array2.length);

+		elements.addAll(Arrays.asList(array1));

+		elements.addAll(Arrays.asList(array2));

+		return elements.toArray();

+	}

+	

+	private PasteAction verifyEnabled(IResource[] copySelectedResources, IJavaElement[] copySelectedJavaElements, IResource[] pasteSelectedResources, IJavaElement[] pasteSelectedJavaElements) throws JavaModelException {

+		PasteAction pasteAction= new PasteAction(new MockWorkbenchSite(merge(pasteSelectedResources, pasteSelectedJavaElements)), _clipboard);

+		CopyToClipboardAction copyToClipboardAction= new CopyToClipboardAction(new MockWorkbenchSite(merge(copySelectedResources, copySelectedJavaElements)), _clipboard);

+		copyToClipboardAction.setAutoRepeatOnFailure(true);

+		copyToClipboardAction.update(copyToClipboardAction.getSelection());

+		assertTrue("copy not enabled", copyToClipboardAction.isEnabled());

+		copyToClipboardAction.run();

+		

+		pasteAction.update(pasteAction.getSelection());

+		assertTrue("paste should be enabled", pasteAction.isEnabled());

+		return pasteAction;

+	}

+

+	private PasteAction verifyEnabled(IResource[] copySelectedResources, IJavaElement[] copySelectedJavaElements, IWorkingSet pasteSelectedWorkingSet) throws JavaModelException {

+		PasteAction pasteAction= new PasteAction(new MockWorkbenchSite(new Object[] {pasteSelectedWorkingSet}), _clipboard);

+		CopyToClipboardAction copyToClipboardAction= new CopyToClipboardAction(new MockWorkbenchSite(merge(copySelectedResources, copySelectedJavaElements)), _clipboard);

+		copyToClipboardAction.setAutoRepeatOnFailure(true);

+		copyToClipboardAction.update(copyToClipboardAction.getSelection());

+		assertTrue("copy not enabled", copyToClipboardAction.isEnabled());

+		copyToClipboardAction.run();

+		

+		pasteAction.update(pasteAction.getSelection());

+		assertTrue("paste should be enabled", pasteAction.isEnabled());

+		return pasteAction;

+	}

+

+	public void testEnabled_javaProject() throws Exception {

+		IJavaElement[] javaElements= {RefactoringTestSetup.getProject()};

+		IResource[] resources= {};

+		verifyEnabled(resources, javaElements, new IResource[0], new IJavaElement[0]);

+	}

+

+	public void testEnabled_project() throws Exception {

+		IJavaElement[] javaElements= {};

+		IResource[] resources= {RefactoringTestSetup.getProject().getProject()};

+		verifyEnabled(resources, javaElements, new IResource[0], new IJavaElement[0]);

+	}

+	

+	public void testEnabled_workingSet() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", new IAdaptable[] {});

+		try {

+			verifyEnabled(new IResource[0], new IJavaElement[] {RefactoringTestSetup.getProject()}, ws);

+		} finally {

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	private void compareContents(String cuName) throws JavaModelException, IOException {

+		assertEqualLines(cuName, getFileContents(getOutputTestFileName(cuName)), getPackageP().getCompilationUnit(cuName + ".java").getSource());

+	}

+	

+	private void delete(ICompilationUnit cu) throws Exception {

+		try {

+			performDummySearch();

+			cu.delete(true, new NullProgressMonitor());

+		} catch (JavaModelException e) {

+			e.printStackTrace();

+			//ingore and keep going

+		}

+	}

+

+	public void test0() throws Exception{

+		if (true) {

+			printTestDisabledMessage("not implemented yet");

+			return;

+		}

+

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		ICompilationUnit cuB= createCUfromTestFile(getPackageP(), "B");

+		

+		try {

+			IType typeA= cuA.getType("A");

+			IType typeB= cuB.getType("B");

+	

+			assertTrue("A does not exist", typeA.exists());

+			assertTrue("B does not exist", typeB.exists());

+	

+			IJavaElement[] copyJavaElements= {typeA};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {typeB};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("A");

+			compareContents("B");

+		} finally{

+			delete(cuA);

+			delete(cuB);

+		}

+	}

+

+	public void test2() throws Exception{

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		ICompilationUnit cuB= createCUfromTestFile(getPackageP(), "B");

+		

+		try {

+			IField fieldY= cuA.getType("A").getField("y");

+			IType typeB= cuB.getType("B");

+	

+			assertTrue("y does not exist", fieldY.exists());

+			assertTrue("B does not exist", typeB.exists());

+	

+			IJavaElement[] copyJavaElements= {fieldY};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {typeB};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("A");

+			compareContents("B");

+		} finally{

+			delete(cuA);

+			delete(cuB);

+		}

+	}

+

+	public void test3() throws Exception{

+//		printTestDisabledMessage("test for bug#19007");

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		ICompilationUnit cuB= createCUfromTestFile(getPackageP(), "B");

+		

+		try {

+			IJavaElement elem0= cuA.getImport("java.lang.*");

+			IImportContainer importContainer= cuB.getImportContainer();

+	

+			assertTrue("y does not exist", elem0.exists());

+			assertTrue("B does not exist", importContainer.exists());

+	

+			IJavaElement[] copyJavaElements= {elem0};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {importContainer};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("A");

+			compareContents("B");

+		} finally{

+			delete(cuA);

+			delete(cuB);

+		}

+	}

+

+	public void test4() throws Exception{

+//		printTestDisabledMessage("test for bug 20151");

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		try {

+			IJavaElement elem0= cuA.getType("A").getMethod("f", new String[0]);

+			IMethod method= cuA.getType("A").getMethod("f1", new String[0]);

+	

+			assertTrue("y does not exist", elem0.exists());

+			assertTrue("B does not exist", method.exists());

+	

+			IJavaElement[] copyJavaElements= {elem0};

+			IResource[] copyResources= {};

+			IJavaElement[] pasteJavaElements= {method};

+			IResource[] pasteResources= {};

+			PasteAction paste= verifyEnabled(copyResources, copyJavaElements, pasteResources, pasteJavaElements);

+			paste.run((IStructuredSelection)paste.getSelection());

+			compareContents("A");

+		} finally{

+			delete(cuA);

+		}

+	}

+	

+	public void testPastingJavaElementIntoWorkingSet() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", new IAdaptable[] {});

+		try {

+			IResource[] resources= {};

+			IJavaElement[] jElements= {RefactoringTestSetup.getProject()};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(RefactoringTestSetup.getProject(), ws.getElements()[0]);

+		} finally {

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	public void testPastingResourceIntoWorkingSet() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", new IAdaptable[] {});

+		IFolder folder= RefactoringTestSetup.getProject().getProject().getFolder("folder");

+		folder.create(true, true, null);

+		try {

+			IResource[] resources= {folder};

+			IJavaElement[] jElements= {};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(folder, ws.getElements()[0]);

+		} finally {

+			performDummySearch();

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+			folder.delete(true, false, null);

+		}

+	}

+

+	public void testPastingJavaElementAsResourceIntoWorkingSet() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", new IAdaptable[] {});

+		try {

+			IResource[] resources= {RefactoringTestSetup.getProject().getProject()};

+			IJavaElement[] jElements= {};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(RefactoringTestSetup.getProject(), ws.getElements()[0]);

+		} finally {

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	public void testPastingExistingElementIntoWorkingSet() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", 

+			new IAdaptable[] {RefactoringTestSetup.getProject()});

+		try {

+			IResource[] resources= {};

+			IJavaElement[] jElements= {RefactoringTestSetup.getProject()};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(RefactoringTestSetup.getProject(), ws.getElements()[0]);

+		} finally {

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	public void testPastingChildJavaElementIntoWorkingSet() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", 

+			new IAdaptable[] {RefactoringTestSetup.getProject()});

+		try {

+			IResource[] resources= {};

+			IJavaElement[] jElements= {getPackageP()};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(RefactoringTestSetup.getProject(), ws.getElements()[0]);

+		} finally {

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	public void testPastingChildResourceIntoWorkingSet() throws Exception {

+		IFolder folder= RefactoringTestSetup.getProject().getProject().getFolder("folder");

+		folder.create(true, true, null);

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", 

+			new IAdaptable[] {folder});

+		IFolder sub= folder.getFolder("sub");

+		sub.create(true, true, null);

+		try {

+			IResource[] resources= {sub};

+			IJavaElement[] jElements= {};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(folder, ws.getElements()[0]);

+		} finally {

+			performDummySearch();

+			folder.delete(true, false, null);

+			sub.delete(true, false, null);

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	public void testPastingChildResourceIntoWorkingSetContainingParent() throws Exception {

+		IWorkingSet ws= PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSet("Test", 

+			new IAdaptable[] {RefactoringTestSetup.getProject()});

+		IFolder folder= RefactoringTestSetup.getProject().getProject().getFolder("folder");

+		folder.create(true, true, null);

+		try {

+			IResource[] resources= {folder};

+			IJavaElement[] jElements= {};

+			PasteAction paste= verifyEnabled(resources , jElements, ws);

+			paste.run((IStructuredSelection)paste.getSelection());

+			assertEquals("Only one element", 1, ws.getElements().length);

+			assertEquals(RefactoringTestSetup.getProject(), ws.getElements()[0]);

+		} finally {

+			performDummySearch();

+			folder.delete(true, false, null);

+			PlatformUI.getWorkbench().getWorkingSetManager().removeWorkingSet(ws);

+		}

+	}

+

+	private void setClipboardContents(TypedSource[] typedSources, int repeat) {

+		final int maxRepeat= 10;

+		try {

+			_clipboard.setContents(new Object[] {typedSources}, new Transfer[] {TypedSourceTransfer.getInstance()});

+		} catch (SWTError e) {

+			if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD || repeat >= maxRepeat)

+				throw e;

+			setClipboardContents(typedSources, repeat+1);

+		}

+	}

+	

+	private void copyAndPasteTypedSources(IJavaElement[] elemsForClipboard, IJavaElement[] pasteSelectedJavaElements, boolean pasteEnabled) throws CoreException {

+		setClipboardContents(TypedSource.createTypedSources(elemsForClipboard), 0);

+		PasteAction pasteAction= new PasteAction(new MockWorkbenchSite(pasteSelectedJavaElements), _clipboard);

+		pasteAction.update(pasteAction.getSelection());

+		assertEquals("action enablement", pasteEnabled, pasteAction.isEnabled());

+		if (pasteEnabled)

+			pasteAction.run((IStructuredSelection)pasteAction.getSelection());

+	}

+

+	public void testPastingTypedResources0() throws Exception {

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		try {

+			IJavaElement methodM= cuA.getType("A").getMethod("m", new String[0]);

+			IJavaElement[] elemsForClipboard= {methodM};

+			IJavaElement[] pasteSelectedJavaElements= {methodM};

+			boolean enabled= true;

+			copyAndPasteTypedSources(elemsForClipboard, pasteSelectedJavaElements, enabled);

+			compareContents("A");

+		} finally{

+			delete(cuA);

+		}

+	}

+

+	public void testPastingTypedResources1() throws Exception {

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		try {

+			IType typeA= cuA.getType("A");

+			IJavaElement fieldF= typeA.getField("f");

+			IJavaElement[] elemsForClipboard= {fieldF};

+			IJavaElement[] pasteSelectedJavaElements= {typeA};

+			boolean enabled= true;

+			copyAndPasteTypedSources(elemsForClipboard, pasteSelectedJavaElements, enabled);

+			compareContents("A");

+		} finally{

+			delete(cuA);

+		}

+	}

+

+	public void testPastingTypedResources2() throws Exception {

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		try {

+			IType typeA= cuA.getType("A");

+			IJavaElement fieldF= typeA.getField("f");

+			IJavaElement[] elemsForClipboard= {fieldF};

+			IJavaElement[] pasteSelectedJavaElements= {typeA};

+			boolean enabled= true;

+			copyAndPasteTypedSources(elemsForClipboard, pasteSelectedJavaElements, enabled);

+			compareContents("A");

+		} finally{

+			delete(cuA);

+		}

+	}

+

+	public void testPastingTypedResources3() throws Exception {

+		ICompilationUnit cuA= createCUfromTestFile(getPackageP(), "A");

+		try {

+			IType typeA= cuA.getType("A");

+			IJavaElement fieldF= typeA.getField("f");

+			IJavaElement fieldG= typeA.getField("g");

+			IJavaElement[] elemsForClipboard= {fieldF, fieldG};

+			IJavaElement[] pasteSelectedJavaElements= {typeA};

+			boolean enabled= true;

+			copyAndPasteTypedSources(elemsForClipboard, pasteSelectedJavaElements, enabled);

+			compareContents("A");

+		} finally{

+			delete(cuA);

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/requiredfeatures/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/requiredfeatures/AllTests.java
new file mode 100644
index 0000000..394daa3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/requiredfeatures/AllTests.java
@@ -0,0 +1,56 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.requiredfeatures;

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author svacina

+ * 

+ * Runs all test cases which are needed for refactoring

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "Tests for required features");

+     

+        //TODO(jsv) test only the usage of specific components used in Refactoring Processor

+        

+        // Hierarchy

+        suite.addTest(org.eclipse.objectteams.otdt.tests.superhierarchy.AllTests.suite());

+        // TypeHelper.getInheritedMethods

+        suite.addTest(org.eclipse.objectteams.otdt.tests.otmodel.internal.TypeHelperGetInheritedMethodsTest.suite());

+        // SearchEngine

+        suite.addTest(org.eclipse.objectteams.otdt.tests.search.OTJavaMethodSearchTests.suite());

+        suite.addTest(org.eclipse.objectteams.otdt.tests.search.OTJavaTypeSearchTests.suite());

+        //TODO(jsv): add required selection tests 

+        return suite;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/util/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/util/AllTests.java
new file mode 100644
index 0000000..2e3be05
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/util/AllTests.java
@@ -0,0 +1,49 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.util;

+

+

+import junit.framework.Test;

+import junit.framework.TestSuite;

+

+/**

+ * @author brcan

+ * 

+ * Runs all OT-specific refactoring tests and corresponding eclipse refactoring tests

+ */

+public class AllTests

+{

+

+    public static void main(String[] args)

+    {

+        junit.textui.TestRunner.run(AllTests.suite());

+    }

+

+    public static Test suite()

+    {

+        TestSuite suite = new TestSuite(

+                "All OT-Refactoring-Util Tests");

+

+        suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.util.RefactoringUtilTest.suite());

+        

+        return suite;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/util/RefactoringUtilTest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/util/RefactoringUtilTest.java
new file mode 100644
index 0000000..0664a2e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/util/RefactoringUtilTest.java
@@ -0,0 +1,192 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.ui.tests.refactoring.util;
+
+import junit.framework.Test;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.objectteams.otdt.core.IRoleType;
+import org.eclipse.objectteams.otdt.ui.tests.refactoring.FileBasedRefactoringTest;
+
+/**
+ * @author svacina
+ * @version $Id: RefactoringUtilTest.java 6446 2005-08-02 10:49:59Z svacina $
+ */
+public class RefactoringUtilTest extends FileBasedRefactoringTest
+{
+
+	private IType _a;
+	private IType _aa;
+	private IType _b;
+	private IType _c;
+	private IType _itest1;
+	private IType _itest2;
+	
+	private IRoleType _team1role1;
+	private IRoleType _team2role1;
+	
+	private IRoleType _team3role2;
+	private IRoleType _team4role2;
+	
+	private IMethod _team2role1m1;
+	private IMethod _team2role1m2;
+	private IMethod _itest2m1;
+	
+	private IMethod _cm1;
+	private IMethod _cm2;
+	private IMethod _team4role2m1;
+	private IMethod _team4role2m2;
+	
+	
+    public RefactoringUtilTest(String name)
+    {
+        super(name);
+    }
+
+    public static Test suite()
+    {
+        return new Suite(RefactoringUtilTest.class);
+    }
+    
+    /**
+     * Creates a team hierarchy with implicit role type inheritance.
+     */
+    public void setUpSuite() throws Exception
+    {
+        setTestProjectDir("RefactoringUtil");
+        super.setUpSuite();
+                
+        _a = getType(getTestProjectDir(),
+        		"src",
+				"rolehierarchy1",
+				"A");
+        
+        _aa = getType(getTestProjectDir(),
+        		"src",
+				"rolehierarchy1",
+				"AA");
+        
+        _b = getType(getTestProjectDir(),
+        		"src",
+				"rolehierarchy1",
+				"B");
+        
+        _c = getType(getTestProjectDir(),
+        		"src",
+				"rolehierarchy1",
+				"C");
+        
+        _itest1 = getType(getTestProjectDir(),
+        		"src",
+				"rolehierarchy1",
+				"ITest1");
+        
+        _itest2 = getType(getTestProjectDir(),
+        		"src",
+				"rolehierarchy1",
+				"ITest2");
+        
+        _team1role1 =
+            getRole(getTestProjectDir(),
+                "src",
+                "rolehierarchy1",
+                "Team1",
+                "Role1");
+        
+        _team2role1 =
+            getRole(getTestProjectDir(),
+                "src",
+                "rolehierarchy1",
+                "Team2",
+                "Role1");
+        
+        _team3role2 =
+            getRole(getTestProjectDir(),
+                "src",
+                "rolehierarchy1",
+                "Team3",
+                "Role2");
+        
+        _team4role2 =
+            getRole(getTestProjectDir(),
+                "src",
+                "rolehierarchy1",
+                "Team4",
+                "Role2");
+        
+        _team2role1m1 = _team2role1.getMethods()[0];
+        _team2role1m2 = _team2role1.getMethods()[1];
+        
+        _itest2m1 = _itest2.getMethods()[0];
+        
+        _cm1 = _c.getMethods()[0];
+        _cm2 = _c.getMethods()[1];
+        _team4role2m2 = _team4role2.getMethods()[1];
+        _team4role2m1 = _team4role2.getMethods()[0];
+        
+        
+        
+    }
+        
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+    }
+    
+    public void testIsDeclaredInInterface_yes() throws JavaModelException
+	{
+    	fail("Not yet implemented");
+//    	MIGRATE
+//    	IMethod expected = _itest2m1;
+//    	IMethod actual = RefactoringUtil.isDeclaredInInterface(_team2role1m1, new NullProgressMonitor());
+//    	assertTrue(expected.equals(actual));
+//	}
+//    
+//    public void testIsDeclaredInInterface_no1() throws JavaModelException
+//	{
+//    	IMethod actual = RefactoringUtil.isDeclaredInInterface(_team2role1m2, new NullProgressMonitor());
+//    	assertNull(actual);
+//	}
+//    
+//    public void testIsDeclaredInInterface_no2() throws JavaModelException
+//	{
+//    	IMethod actual = RefactoringUtil.isDeclaredInInterface(_team4role2m2, new NullProgressMonitor());
+//    	assertNull(actual);
+//	}
+//    
+//    public void testOverridesAnotherMethod_yes() throws JavaModelException
+//	{
+//    	IMethod expected = _cm2;
+//    	IMethod actual = RefactoringUtil.overridesAnotherMethod(_team4role2m2, new NullProgressMonitor());
+//    	assertTrue(expected.equals(actual));
+//	}
+//    
+//    public void testOverridesAnotherMethod_no() throws JavaModelException
+//	{
+//    	IMethod actual = RefactoringUtil.overridesAnotherMethod(_team2role1m2, new NullProgressMonitor());
+//    	assertNull(actual);
+	}
+
+    //TODO(jsv) test with nested teams
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/test-old.xml b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/test-old.xml
new file mode 100644
index 0000000..e31030b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/test-old.xml
@@ -0,0 +1,61 @@
+<project name="testsuite" default="run" basedir=".">

+

+	<property name="otdt-tests-workspace" value="${test.eclipseDir}/otdt-tests-workspace"/>

+

+	<!-- sets the properties eclipseTest-home, and library-file -->

+	<property name="plugin-name" value="org.eclipse.objectteams.otdt.ui.tests.refactoring"/>

+

+	<property name="library-file" value="${test.eclipseDir}/plugins/org.eclipse.test/library.xml"/>

+

+	<!-- This target holds all initialization code that needs to be done for -->

+	<!-- all tests that are to be run. Initialization for individual tests -->

+	<!-- should be done within the body of the suite target. -->

+	<target name="init">

+		<tstamp/>

+		<delete>

+			<fileset dir="${test.eclipseDir}" includes="org.eclipse.objectteams.otdt.ui.tests.refactoring.AllTests.xml,org.eclipse.objectteams.otdt.ui.tests.refactoring.${file-id}.xml"/>

+		</delete>

+

+	</target>

+

+	<!-- This target defines the tests that need to be run. -->

+	<target name="suite">

+

+		<!-- OTDT Refactoring tests -->

+		<property name="otdt-ref-folder" 

+              value="${otdt-tests-workspace}/otdt-ref-folder"/>

+		<delete dir="${otdt-ref-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-ref-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" value="org.eclipse.objectteams.otdt.ui.tests.refactoring.AllTests"/>

+		</ant>

+

+	</target>

+

+	<target name="checkOS">

+		<condition property="os.isWindows">

+			<os family="windows"/>

+		</condition>

+	</target>

+

+	<!-- This target holds code to cleanup the testing environment after -->

+	<!-- after all of the tests have been run. You can use this target to -->

+	<!-- delete temporary files that have been created. -->

+	<target name="cleanup">

+

+	</target>

+

+	<!-- This target runs the test suite. Any actions that need to happen -->

+	<!-- after all the tests have been run should go here. -->

+	<target name="run" depends="init,suite,cleanup">

+

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="org.eclipse.objectteams.otdt.ui.tests.refactoring.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.${file-id}.xml"/>

+		</ant>

+

+	</target>

+

+</project>

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/test.xml b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/test.xml
new file mode 100644
index 0000000..6656208
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/test.xml
@@ -0,0 +1,166 @@
+<project name="testsuite" default="run" basedir=".">

+

+	<property name="otdt-tests-workspace" value="${test.eclipseDir}/otdt-tests-workspace"/>

+

+	<!-- sets the properties eclipseTest-home, and library-file -->

+	<property name="plugin-name" value="org.eclipse.objectteams.otdt.ui.tests.refactoring"/>

+

+	<!-- library.xml need these properties-->

+	<property name="eclipse-home" value="${test.eclipseDir}"/>

+	

+	<property name="library-file" value="${test.eclipseDir}/plugins/${org.eclipse.test}/library.xml"/>

+

+	<!-- This target holds all initialization code that needs to be done for -->

+	<!-- all tests that are to be run. Initialization for individual tests -->

+	<!-- should be done within the body of the suite target. -->

+	<target name="init">

+		<tstamp/>

+		<delete>

+			<fileset dir="${test.eclipseDir}" includes="${plugin-name}.AllTests.xml,${plugin-name}..${file-id}.xml"/>

+<!--

+			<fileset dir="${test.eclipseDir}" includes="${plugin-name}.extractmethod.AllTests.xml,${plugin-name}.extractmethod.${file-id}.xml"/>

+			<fileset dir="${test.eclipseDir}" includes="${plugin-name}.move.AllTests.xml,${plugin-name}.move.${file-id}.xml"/>

+			<fileset dir="${test.eclipseDir}" includes="${plugin-name}.rename.AllTests.xml,${plugin-name}.rename.${file-id}.xml"/>

+			<fileset dir="${test.eclipseDir}" includes="${plugin-name}.reorg.AllTests.xml,${plugin-name}.reorg.${file-id}.xml"/>

+			<fileset dir="${test.eclipseDir}" includes="${plugin-name}.util.AllTests.xml,${plugin-name}.util.${file-id}.xml"/>

+-->

+		</delete>

+	</target>

+

+	<!-- This target defines the tests that need to be run. -->

+	<target name="suite">

+

+		<!-- All OTDT Refactoring tests -->

+		<property name="otdt-allrefactorings-folder" 

+              value="${otdt-tests-workspace}/otdt-allrefactorings-folder"/>

+		<delete dir="${otdt-allrefactorings-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-allrefactorings-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" 

+                value="${plugin-name}.AllTests"/>

+		</ant>

+

+<!--

+		<property name="otdt-extractmethod-folder" 

+              value="${otdt-tests-workspace}/otdt-extractmethod-folder"/>

+		<delete dir="${otdt-extractmethod-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-extractmethod-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" 

+                value="${plugin-name}.extractmethod.AllTests"/>

+		</ant>

+-->

+		<!-- OTDT Move Refactoring tests -->

+<!--

+		<property name="otdt-move-folder" 

+              value="${otdt-tests-workspace}/otdt-move-folder"/>

+		<delete dir="${otdt-move-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-move-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" 

+                value="${plugin-name}.move.AllTests"/>

+		</ant>

+-->

+		<!-- OTDT Rename Refactoring tests -->

+<!--

+		<property name="otdt-rename-folder" 

+              value="${otdt-tests-workspace}/otdt-rename-folder"/>

+		<delete dir="${otdt-rename-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-rename-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" 

+                value="${plugin-name}.rename.AllTests"/>

+		</ant>

+-->

+		

+		<!-- OTDT Reorg Refactoring tests -->

+<!--

+		<property name="otdt-reorg-folder" 

+              value="${otdt-tests-workspace}/otdt-reorg-folder"/>

+		<delete dir="${otdt-reorg-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-reorg-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" 

+                value="${plugin-name}.reorg.AllTests"/>

+		</ant>

+-->

+		

+		<!-- OTDT Util Refactoring tests -->

+<!--

+		<property name="otdt-util-folder" 

+              value="${otdt-tests-workspace}/otdt-util-folder"/>

+		<delete dir="${otdt-util-folder}" quiet="true"/>

+

+		<ant target="ui-test" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="data-dir" value="${otdt-util-folder}"/>

+			<property name="plugin-name" value="${plugin-name}"/>

+			<property name="classname" 

+                value="${plugin-name}.util.AllTests"/>

+		</ant>

+-->

+	</target>

+

+

+

+	<target name="checkOS">

+		<condition property="os.isWindows">

+			<os family="windows"/>

+		</condition>

+	</target>

+

+	<!-- This target holds code to cleanup the testing environment after -->

+	<!-- after all of the tests have been run. You can use this target to -->

+	<!-- delete temporary files that have been created. -->

+	<target name="cleanup">

+

+	</target>

+

+	<!-- This target runs the test suite. Any actions that need to happen -->

+	<!-- after all the tests have been run should go here. -->

+	<target name="run" depends="init,suite,cleanup">

+

+<!--

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="${plugin-name}.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.${file-id}.xml"/>

+		</ant>

+-->		

+<!--

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="${plugin-name}.extractmethod.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.extractmethod.${file-id}.xml"/>

+		</ant>

+

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="${plugin-name}.move.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.move.${file-id}.xml"/>

+		</ant>

+

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="${plugin-name}.rename.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.rename.${file-id}.xml"/>

+		</ant>

+		

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="${plugin-name}.reorg.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.reorg.${file-id}.xml"/>

+		</ant>

+

+		<ant target="collect" antfile="${library-file}" dir="${test.eclipseDir}">

+			<property name="includes" value="${plugin-name}.util.AllTests.xml"/>

+			<property name="output-file" value="${plugin-name}.util.${file-id}.xml"/>

+		</ant>

+-->

+	</target>

+

+</project>

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/in/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/in/T.java
new file mode 100644
index 0000000..a08ffc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public void rm(){}

+		label: rm <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/out/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/out/T.java
new file mode 100644
index 0000000..510518c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCallinMapping/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public void rm(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/in/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/in/T.java
new file mode 100644
index 0000000..82ffeee
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract void rm();

+		/** This callout has a javadoc comment. */

+		rm -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/out/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/out/T.java
new file mode 100644
index 0000000..a9d9e41
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutMapping/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract void rm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/in/B.java
new file mode 100644
index 0000000..2edab0f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/in/T.java
new file mode 100644
index 0000000..64feb79
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract int rm();

+		rm -> get f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/out/B.java
new file mode 100644
index 0000000..2edab0f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/out/T.java
new file mode 100644
index 0000000..68111ff
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteCalloutToFieldMapping/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract int rm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteNestedTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteNestedTeamclass/in/T.java
new file mode 100644
index 0000000..403cd8f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteNestedTeamclass/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+	public team class TR

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteNestedTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteNestedTeamclass/out/T.java
new file mode 100644
index 0000000..7655e94
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteNestedTeamclass/out/T.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteRoleclass/in/T.java
new file mode 100644
index 0000000..0ff3f9e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteRoleclass/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteRoleclass/out/T.java
new file mode 100644
index 0000000..7655e94
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteRoleclass/out/T.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteTeamclass/in/T.java
new file mode 100644
index 0000000..7655e94
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteTeamclass/in/T.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteTeamclass/out/T.java
new file mode 100644
index 0000000..b23b2d9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testDeleteTeamclass/out/T.java
@@ -0,0 +1 @@
+package p;
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testGetRoleclassName/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testGetRoleclassName/in/T.java
new file mode 100644
index 0000000..0ff3f9e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Delete/testGetRoleclassName/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/in/B.java
new file mode 100644
index 0000000..cf9c60e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/in/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+		n(i);

+		base_m();

+	}

+

+	private void n(int j)

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/in/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/out/B.java
new file mode 100644
index 0000000..a609a64
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/out/B.java
@@ -0,0 +1,16 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+		base_m();

+	}

+

+	private void n(int j)

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/out/T.java
new file mode 100644
index 0000000..2a9ed85
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameter/out/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+

+		private void m(int j)

+		{

+		}

+

+		void m(int j) <- before void m(int i);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/in/B.java
new file mode 100644
index 0000000..fde01eb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/in/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m(int i, int x)

+	{

+		n(x + 1);

+		base_m();

+	}

+

+	private void n(int j)

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/in/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/out/B.java
new file mode 100644
index 0000000..1a4630b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/out/B.java
@@ -0,0 +1,16 @@
+package p;

+

+public class B{

+	public void m(int i, int x)

+	{

+		base_m();

+	}

+

+	private void n(int j)

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/out/T.java
new file mode 100644
index 0000000..f261988
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractCallinWithParameterMapping/out/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+

+		private void m(int j)

+		{

+		}

+

+		void m(int j) <- before void m(int i, int x) with

+		{

+			j <- x + 1

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/in/B.java
new file mode 100644
index 0000000..68bd192
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/in/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+		n();

+	}

+

+	private void n()

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/in/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/out/B.java
new file mode 100644
index 0000000..244abb2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/out/B.java
@@ -0,0 +1,16 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+	}

+

+	private void n()

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/out/T.java
new file mode 100644
index 0000000..cd64628
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleAfterCallin/out/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+

+		private void m()

+		{

+		}

+

+		void m() <- after void m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/in/B.java
new file mode 100644
index 0000000..25c8041
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/in/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		n();

+		base_m();

+	}

+

+	private void n()

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/in/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/out/B.java
new file mode 100644
index 0000000..244abb2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/out/B.java
@@ -0,0 +1,16 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+	}

+

+	private void n()

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/out/T.java
new file mode 100644
index 0000000..5871013
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleBeforeCallin/out/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+

+		private void m()

+		{

+		}

+

+		void m() <- before void m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/in/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/out/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/out/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/out/T.java
new file mode 100644
index 0000000..9f3f128
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin1/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+

+		callin void m(){}

+

+		void m() <- replace void m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/in/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/out/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/out/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/out/T.java
new file mode 100644
index 0000000..a2b3bf7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractCallin/testExtractSimpleReplaceCallin2/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+

+		callin void m(){base.m();}

+

+		void m() <- replace void m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/A.java
new file mode 100644
index 0000000..b12359f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/A.java
@@ -0,0 +1,11 @@
+package focusType_in;

+

+public class A

+{

+	public void f1(String s, int x)

+	{

+		/*[*/f2(s,x);/*]*/

+	}

+	public void f2(String s, int x){}

+	public void extracted(String str){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/B.java
new file mode 100644
index 0000000..c2fa83f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/B.java
@@ -0,0 +1,10 @@
+package focusType_in;

+

+public class B extends A

+{

+	public void g1(int x)

+	{

+		/*[*/g2(x);/*]*/

+	}

+	public void g2(int x){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/C.java
new file mode 100644
index 0000000..af82182
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/C.java
@@ -0,0 +1,13 @@
+package focusType_in;

+

+public class C extends B

+{

+	public void h1(int x, int y)

+	{

+		/*[*/int a, b;

+			 a = x;

+			 b = y;

+			 h2(a, b);/*]*/

+	}

+	public void h2(int a, int b){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam1.java
new file mode 100644
index 0000000..2e2df4a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam1.java
@@ -0,0 +1,11 @@
+package focusType_in;

+

+public team class FocusTeam1

+{

+	public void m1()

+	{

+		/*[*/m2();/*]*/

+	}

+	public void m2(){}

+	public void extracted(String str){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam2.java
new file mode 100644
index 0000000..3c8983c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam2.java
@@ -0,0 +1,10 @@
+package focusType_in;

+

+public team class FocusTeam2 extends FocusTeam1

+{

+	public void m1()

+	{

+		/*[*/m2();/*]*/

+	}

+	public void m2(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam3.java
new file mode 100644
index 0000000..a49470e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/FocusTeam3.java
@@ -0,0 +1,10 @@
+package focusType_in;

+

+public team class FocusTeam3 extends FocusTeam2

+{

+	public void m1()

+	{

+		/*[*/m2();/*]*/

+	}	

+	public void m2(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T1.java
new file mode 100644
index 0000000..d1fd1cd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T1.java
@@ -0,0 +1,19 @@
+package focusType_in;

+

+public team class T1

+{

+    public class R1 playedBy C

+    {

+        protected abstract void n(String s);

+        

+    	public void m1()

+    	{

+    		/*[*/m2();/*]*/

+    	}

+    	public void m2(){}

+		public void extracted(String str){}

+        

+        extracted <- after f1;

+        		n -> extracted;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T2.java
new file mode 100644
index 0000000..ac26b94
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T2.java
@@ -0,0 +1,16 @@
+package focusType_in;

+

+public team class T2 extends T1

+{

+    public class R1 playedBy C

+    {

+    	public void m1()

+    	{

+    		/*[*/m2();/*]*/

+    	}

+    	public void m2(){}

+        

+        extracted <- after f2;

+        		n => extracted;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T3.java
new file mode 100644
index 0000000..8272879
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/focusType_in/T3.java
@@ -0,0 +1,16 @@
+package focusType_in;

+

+public team class T3 extends T2

+{

+    public class R1 playedBy C

+    {

+    	public void m1()

+    	{

+    		/*[*/m2();/*]*/

+    	}

+    	public void m2(){}

+        

+        extracted <- after f2;

+        		n => extracted;        

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam3.java
new file mode 100644
index 0000000..b109d3b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam3.java
@@ -0,0 +1,11 @@
+package nestedTeam_in;

+

+public class B_testNestedTeam3

+{

+    public void m1(int x)

+    {

+        /*[*/m2(x);/*]*/

+    }

+    private void m2(int x){}

+    public void extracted(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam4.java
new file mode 100644
index 0000000..d646f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam4.java
@@ -0,0 +1,6 @@
+package nestedTeam_in;

+

+public class B_testNestedTeam4

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam5.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam5.java
new file mode 100644
index 0000000..279af48
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam5.java
@@ -0,0 +1,11 @@
+package nestedTeam_in;

+

+public class B_testNestedTeam5

+{

+    public void m1(int x)

+    {

+        /*[*/m2(x);/*]*/

+    }

+    private void m2(int x){}

+    public void extracted(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam6.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam6.java
new file mode 100644
index 0000000..5613a64
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/B_testNestedTeam6.java
@@ -0,0 +1,6 @@
+package nestedTeam_in;

+

+public class B_testNestedTeam6

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam1.java
new file mode 100644
index 0000000..1193d40
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam1.java
@@ -0,0 +1,14 @@
+package nestedTeam_in;

+

+public team class T1_testNestedTeam1

+{

+	public team class NestedTeam

+	{

+		public void foo()

+		{

+			/*[*/bar();/*]*/

+		}

+

+		public void bar(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam2.java
new file mode 100644
index 0000000..7d2ef43
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam2.java
@@ -0,0 +1,17 @@
+package nestedTeam_in;

+

+public team class T1_testNestedTeam2

+{

+	public team class NestedTeam

+	{

+		public class InnerRole

+		{

+			public void foo()

+			{

+				/*[*/bar();/*]*/

+			}

+

+			public void bar(){}

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam3.java
new file mode 100644
index 0000000..8e6c355
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam3.java
@@ -0,0 +1,15 @@
+package nestedTeam_in;

+

+public team class T1_testNestedTeam3

+{

+    public team class NestedTeam playedBy B_testNestedTeam3

+    {

+        public void foo()

+    	{

+            bar();

+    	}

+    	public abstract void bar();

+    	

+    	bar -> extracted;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam4.java
new file mode 100644
index 0000000..edc5c00
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam4.java
@@ -0,0 +1,16 @@
+package nestedTeam_in;

+

+public team class T1_testNestedTeam4

+{

+    public team class NestedTeam playedBy B_testNestedTeam4

+    {

+        public void foo(String str)

+    	{

+            /*[*/bar(str);/*]*/

+    	}

+        public void bar(String str){}

+    	public void extracted(){}

+    	

+    	extracted <- before m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam5.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam5.java
new file mode 100644
index 0000000..8574582
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam5.java
@@ -0,0 +1,18 @@
+package nestedTeam_in;

+

+public team class T1_testNestedTeam5

+{

+    public team class NestedTeam

+    {

+        public class InnerRole playedBy B_testNestedTeam5

+        {

+            public void foo()

+        	{

+                bar();

+        	}

+        	public abstract void bar();

+        	

+        	bar -> extracted;

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam6.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam6.java
new file mode 100644
index 0000000..315e1f1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_in/T1_testNestedTeam6.java
@@ -0,0 +1,19 @@
+package nestedTeam_in;

+

+public team class T1_testNestedTeam6

+{

+    public team class NestedTeam

+    {

+        public class InnerRole playedBy B_testNestedTeam6

+        {

+	        public void foo(String str)

+	    	{

+	            /*[*/bar(str);/*]*/

+	    	}

+	        public void bar(String str){}

+	    	public void extracted(){}

+	    	

+	    	extracted <- before m;

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_out/T1_testNestedTeam1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_out/T1_testNestedTeam1.java
new file mode 100644
index 0000000..8a65add
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_out/T1_testNestedTeam1.java
@@ -0,0 +1,19 @@
+package nestedTeam_out;

+

+public team class T1_testNestedTeam1

+{

+	public team class NestedTeam

+	{

+		public void foo()

+		{

+			extracted();

+		}

+

+		protected void extracted()

+		{

+			/*[*/bar();/*]*/

+		}

+

+		public void bar(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_out/T1_testNestedTeam2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_out/T1_testNestedTeam2.java
new file mode 100644
index 0000000..a4a3db3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/nestedTeam_out/T1_testNestedTeam2.java
@@ -0,0 +1,22 @@
+package nestedTeam_out;

+

+public team class T1_testNestedTeam2

+{

+	public team class NestedTeam

+	{

+		public class InnerRole

+		{

+			public void foo()

+			{

+				extracted();

+			}

+

+			protected void extracted()

+			{

+				/*[*/bar();/*]*/

+			}

+

+			public void bar(){}

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test20.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test20.java
new file mode 100644
index 0000000..29cd0ab
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test20.java
@@ -0,0 +1,19 @@
+package overloading_in;

+

+public class A_test20

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test21.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test21.java
new file mode 100644
index 0000000..78fb6e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test21.java
@@ -0,0 +1,19 @@
+package overloading_in;

+

+public class A_test21

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test22.java
new file mode 100644
index 0000000..cf32730
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test22.java
@@ -0,0 +1,19 @@
+package overloading_in;

+

+public class A_test22

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test23.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test23.java
new file mode 100644
index 0000000..b99fcc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test23.java
@@ -0,0 +1,19 @@
+package overloading_in;

+

+public class A_test23

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test24.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test24.java
new file mode 100644
index 0000000..8c92132
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test24.java
@@ -0,0 +1,19 @@
+package overloading_in;

+

+public class A_test24

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test25.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test25.java
new file mode 100644
index 0000000..ede8b96
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/A_test25.java
@@ -0,0 +1,19 @@
+package overloading_in;

+

+public class A_test25

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test20.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test20.java
new file mode 100644
index 0000000..75b0064
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test20.java
@@ -0,0 +1,6 @@
+package overloading_in;

+

+public class B_test20 extends A_test20

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test21.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test21.java
new file mode 100644
index 0000000..aeb8a6e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test21.java
@@ -0,0 +1,6 @@
+package overloading_in;

+

+public class B_test21 extends A_test21

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test22.java
new file mode 100644
index 0000000..831af51
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/B_test22.java
@@ -0,0 +1,6 @@
+package overloading_in;

+

+public class B_test22 extends A_test22

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test20.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test20.java
new file mode 100644
index 0000000..bfccf89
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test20.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public class Base1_test20

+{

+	public void baseMethod(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test21.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test21.java
new file mode 100644
index 0000000..427401c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test21.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public class Base1_test21

+{

+	public void baseMethod(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test22.java
new file mode 100644
index 0000000..f0d6bd1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test22.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public class Base1_test22

+{

+	public void baseMethod(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test24.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test24.java
new file mode 100644
index 0000000..ec32d49
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test24.java
@@ -0,0 +1,6 @@
+package overloading_in;

+

+public class Base1_test24 extends A_test24

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test25.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test25.java
new file mode 100644
index 0000000..4137522
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Base1_test25.java
@@ -0,0 +1,6 @@
+package overloading_in;

+

+public class Base1_test25 extends A_test25

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test20.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test20.java
new file mode 100644
index 0000000..e62d4ff
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test20.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public team class Team1_test20

+{

+	public class Role1_test20 extends B_test20 playedBy Base1_test20 

+	{

+		extracted <- after baseMethod;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test21.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test21.java
new file mode 100644
index 0000000..22174a3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test21.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public team class Team1_test21

+{

+	public class Role1_test21 extends B_test21 

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test22.java
new file mode 100644
index 0000000..172f6a5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test22.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public team class Team1_test22

+{

+	public class Role1_test22 extends B_test22 

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test23.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test23.java
new file mode 100644
index 0000000..ae200fd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test23.java
@@ -0,0 +1,14 @@
+package overloading_in;

+

+public team class Team1_test23

+{

+	public class Role1_test23 playedBy A_test23

+	{

+		public void foo(String str)

+		{

+

+		}

+		

+		foo <- after extracted;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test24.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test24.java
new file mode 100644
index 0000000..fb1a20f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test24.java
@@ -0,0 +1,14 @@
+package overloading_in;

+

+public team class Team1_test24

+{

+	public class Role1_test24 playedBy Base1_test24

+	{

+		public foo(String str)

+		{

+

+		}

+		

+		foo <- after extracted;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test25.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test25.java
new file mode 100644
index 0000000..2baee76
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team1_test25.java
@@ -0,0 +1,14 @@
+package overloading_in;

+

+public team class Team1_test25

+{

+	public class Role1_test25 playedBy Base1_test25

+	{

+		public foo(String str)

+		{

+

+		}

+		

+		void foo(String str) <- after void extracted(String str);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team2_test21.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team2_test21.java
new file mode 100644
index 0000000..bee855b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team2_test21.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public team class Team2_test21 extends Team1_test21

+{

+	public class Role1_test21 playedBy Base1_test21 

+	{

+		extracted <- after baseMethod;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team2_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team2_test22.java
new file mode 100644
index 0000000..7dd0def
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_in/Team2_test22.java
@@ -0,0 +1,9 @@
+package overloading_in;

+

+public team class Team2_test21 extends Team1_test21

+{

+	public class Role1_test22 playedBy Base1_test22 

+	{

+		extracted(String str) <- after baseMethod(String str);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/A_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/A_test22.java
new file mode 100644
index 0000000..5cb3cd0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/A_test22.java
@@ -0,0 +1,24 @@
+package overloading_out;

+

+public class A_test22

+{

+	public void foo()

+	{

+		extracted();

+	}

+

+	protected void extracted()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/A_test25.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/A_test25.java
new file mode 100644
index 0000000..fcf1049
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/A_test25.java
@@ -0,0 +1,24 @@
+package overloading_out;

+

+public class A_test25

+{

+	public void foo()

+	{

+		extracted();

+	}

+

+	protected void extracted()

+	{

+		/*[*/bar();/*]*/

+	}

+

+	public void bar()

+	{

+

+	}

+

+	public void extracted(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/B_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/B_test22.java
new file mode 100644
index 0000000..5f498ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/B_test22.java
@@ -0,0 +1,6 @@
+package overloading_out;

+

+public class B_test22 extends A_test22

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Base1_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Base1_test22.java
new file mode 100644
index 0000000..2beef97
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Base1_test22.java
@@ -0,0 +1,9 @@
+package overloading_out;

+

+public class Base1_test22

+{

+	public void baseMethod(String str)

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Base1_test25.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Base1_test25.java
new file mode 100644
index 0000000..054cf33
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Base1_test25.java
@@ -0,0 +1,6 @@
+package overloading_out;

+

+public class Base1_test25 extends A_test25

+{

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team1_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team1_test22.java
new file mode 100644
index 0000000..c7941fe
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team1_test22.java
@@ -0,0 +1,9 @@
+package overloading_out;

+

+public team class Team1_test21

+{

+	public class Role1_test22 extends B_test22 

+	{

+

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team1_test25.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team1_test25.java
new file mode 100644
index 0000000..0b92f3b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team1_test25.java
@@ -0,0 +1,14 @@
+package overloading_out;

+

+public team class Team1_test25

+{

+	public class Role1_test25 playedBy Base1_test25

+	{

+		public foo(String str)

+		{

+

+		}

+		

+		foo <- after extracted;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team2_test22.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team2_test22.java
new file mode 100644
index 0000000..d9418cf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/overloading_out/Team2_test22.java
@@ -0,0 +1,9 @@
+package overloading_out;

+

+public team class Team2_test21 extends Team1_test21

+{

+	public class Role1_test22 playedBy Base1_test22 

+	{

+		extracted(String str) <- after baseMethod(String str);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile.java
new file mode 100644
index 0000000..fc4e2d8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile.java
@@ -0,0 +1,6 @@
+package roleFile_in;
+
+public team class TeamWithRoleFile
+{
+
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile/R_testRoleFile1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile/R_testRoleFile1.java
new file mode 100644
index 0000000..01385d6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile/R_testRoleFile1.java
@@ -0,0 +1,11 @@
+team package roleFile_in.TeamWithRoleFile;
+
+public class R_testRoleFile1
+{
+	public void foo()
+	{
+		/*[*/bar();/*]*/
+	}
+
+	public void bar(){}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile/R_testRoleFile2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile/R_testRoleFile2.java
new file mode 100644
index 0000000..9678035
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_in/TeamWithRoleFile/R_testRoleFile2.java
@@ -0,0 +1,16 @@
+team package roleFile_in.TeamWithRoleFile;
+
+public class R_testRoleFile2
+{
+	private int a, b, c;
+
+	public void foo()
+	{
+		/*[*/c = a + b;/*]*/
+	}
+
+	public void bar()
+	{
+		c = a + b;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile.java
new file mode 100644
index 0000000..6ed460a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile.java
@@ -0,0 +1,6 @@
+package role_out;
+
+public team class TeamWithRoleFile
+{
+
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile/R_testRoleFile1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile/R_testRoleFile1.java
new file mode 100644
index 0000000..c64ac37
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile/R_testRoleFile1.java
@@ -0,0 +1,16 @@
+team package roleFile_out.TeamWithRoleFile;
+
+public class R_testRoleFile1
+{
+	public void foo()
+	{
+		extracted();
+	}
+
+	protected void extracted()
+	{
+		/*[*/bar();/*]*/
+	}
+
+	public void bar(){}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile/R_testRoleFile2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile/R_testRoleFile2.java
new file mode 100644
index 0000000..3d207e7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/roleFile_out/TeamWithRoleFile/R_testRoleFile2.java
@@ -0,0 +1,21 @@
+team package roleFile_out.TeamWithRoleFile;
+
+public class R_testRoleFile2
+{
+	private int a, b, c;
+
+	public void foo()
+	{
+		extracted();
+	}
+
+	protected void extracted()
+	{
+		/*[*/c = a + b;/*]*/
+	}
+
+	public void bar()
+	{
+		c = a + b;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_in/T_testRoleclass1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_in/T_testRoleclass1.java
new file mode 100644
index 0000000..06b7ea3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_in/T_testRoleclass1.java
@@ -0,0 +1,14 @@
+package role_in;

+

+public team class T_testRoleclass1

+{

+	public class R

+	{

+		public void foo()

+		{

+			/*[*/bar();/*]*/

+		}

+

+		public void bar(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_in/T_testRoleclass2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_in/T_testRoleclass2.java
new file mode 100644
index 0000000..bd868b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_in/T_testRoleclass2.java
@@ -0,0 +1,19 @@
+package role_in;

+

+public team class T_testRoleclass2

+{

+	public class R

+	{

+		private int a, b, c;

+

+		public void foo()

+		{

+			/*[*/c = a + b;/*]*/

+		}

+

+		public void bar()

+		{

+			c = a + b;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_out/T_testRoleclass1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_out/T_testRoleclass1.java
new file mode 100644
index 0000000..305e618
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_out/T_testRoleclass1.java
@@ -0,0 +1,19 @@
+package role_out;

+

+public team class T_testRoleclass1

+{

+	public class R

+	{

+		public void foo()

+		{

+			extracted();

+		}

+

+		protected void extracted()

+		{

+			/*[*/bar();/*]*/

+		}

+

+		public void bar(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_out/T_testRoleclass2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_out/T_testRoleclass2.java
new file mode 100644
index 0000000..7afb312
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/role_out/T_testRoleclass2.java
@@ -0,0 +1,24 @@
+package role_out;

+

+public team class T_testRoleclass2

+{

+	public class R

+	{

+		private int a, b, c;

+

+		public void foo()

+		{

+			extracted();

+		}

+

+		protected void extracted()

+		{

+			/*[*/c = a + b;/*]*/

+		}

+

+		public void bar()

+		{

+			c = a + b;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_in/T_testTeamclass1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_in/T_testTeamclass1.java
new file mode 100644
index 0000000..2daa1ff
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_in/T_testTeamclass1.java
@@ -0,0 +1,10 @@
+package team_in;

+

+public team class T_testTeamclass1

+{

+	public void foo()

+	{

+		/*[*/bar();/*]*/

+	}

+	public void bar(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_in/T_testTeamclass2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_in/T_testTeamclass2.java
new file mode 100644
index 0000000..3ef3314
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_in/T_testTeamclass2.java
@@ -0,0 +1,11 @@
+package team_in;

+

+public team class T_testTeamclass2

+{

+	private int a, b, c;

+	

+	public void foo()

+	{

+		/*[*/c = a + b;/*]*/

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_out/T_testTeamclass1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_out/T_testTeamclass1.java
new file mode 100644
index 0000000..db8485d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_out/T_testTeamclass1.java
@@ -0,0 +1,14 @@
+package team_out;

+

+public team class T_testTeamclass1

+{

+	public void foo()

+	{

+		extracted();

+	}

+	protected void extracted()

+	{

+		/*[*/bar();/*]*/

+	}

+	public void bar(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_out/T_testTeamclass2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_out/T_testTeamclass2.java
new file mode 100644
index 0000000..5b3ab58
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractMethod/team_out/T_testTeamclass2.java
@@ -0,0 +1,16 @@
+package team_out;

+

+public team class T_testTeamclass2

+{

+	private int a, b, c;

+	

+	public void foo()

+	{

+		extracted();

+	}

+

+	protected void extracted()

+	{

+		/*[*/c = a + b;/*]*/

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor1.java
new file mode 100644
index 0000000..24c766d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor1.java
@@ -0,0 +1,17 @@
+package statements_in; // 15, 13, 15, 18
+public team class T_testTypeAnchor1 {
+	public final InnerTeam it;
+	T_testTypeAnchor1()
+	{
+		it = new InnerTeam();
+	}
+	public team class InnerTeam {
+		public class R1 {
+			
+		}		
+	}
+	public static void main(String[] args) {
+		final T_testTypeAnchor1 t1 = new T_testTypeAnchor1();
+		R1<@t1.it> r1 = null;
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor2.java
new file mode 100644
index 0000000..a7a6620
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor2.java
@@ -0,0 +1,23 @@
+package statements_in; // 21, 13, 21, 20
+public team class T_testTypeAnchor2 {
+	public final R0 r;
+	T_testTypeAnchor2()
+	{
+		r = new R0(new InnerTeam());
+	}
+	public class R0 {
+		public final InnerTeam it;
+		R0(InnerTeam it) {
+			this.it = it;
+		}
+	}
+	public team class InnerTeam {
+		public class R1 {
+			
+		}		
+	}
+	public static void main(String[] args) {
+		final T_testTypeAnchor2 t1 = new T_testTypeAnchor2();
+		R1<@t1.r.it> r1 = null;
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor3.java
new file mode 100644
index 0000000..1d7afb0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testTypeAnchor3.java
@@ -0,0 +1,21 @@
+package statements_in; // 19, 13, 19, 20
+public team class T_testTypeAnchor2 {
+	public final R0 r;
+	T_testTypeAnchor2()
+	{
+		r = new R0();
+	}
+	public team class R0 {
+		public final R1 r1;
+		R0() {
+			this.it = it;
+		}
+		public team class R1 {
+			public class R2 {}
+		}		
+	}
+	public static void main(String[] args) {
+		final T_testTypeAnchor2 t1 = new T_testTypeAnchor2();
+		R2<@t1.r.r1> r2 = null;
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testWithin1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testWithin1.java
new file mode 100644
index 0000000..d27a855
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testWithin1.java
@@ -0,0 +1,15 @@
+package statements_in; // 9,16 - 9, 35
+/**
+ * @author stephan
+ *
+ */
+public team class T_testWithin1 {
+	public static void main(String[] args) {
+		int i = 7;
+		within(new T_testWithin1()) {
+			System.out.println("within1");
+		}
+		System.err.println("after");
+	}
+}
+ 
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testWithin2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testWithin2.java
new file mode 100644
index 0000000..adb87f5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_in/T_testWithin2.java
@@ -0,0 +1,14 @@
+package statements_in; // 9,16 - 9, 35
+/**
+ * @author stephan
+ *
+ */
+public team class T_testWithin2 {
+	public static void main(String[] args) {
+		int i = 7;
+		within(new T_testWithin2())
+			System.out.println("within2");
+		System.err.println("after");
+	}
+}
+ 
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor1.java
new file mode 100644
index 0000000..c56724d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor1.java
@@ -0,0 +1,18 @@
+package statements; // 15, 13, 15, 18
+public team class T_testTypeAnchor1 {
+	public final InnerTeam it;
+	T_testTypeAnchor1()
+	{
+		it = new InnerTeam();
+	}
+	public team class InnerTeam {
+		public class R1 {
+			
+		}		
+	}
+	public static void main(String[] args) {
+		final T_testTypeAnchor1 t1 = new T_testTypeAnchor1();
+		final InnerTeam<@t1> extracted=t1.it;
+		R1<@extracted> r1 = null;
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor2.java
new file mode 100644
index 0000000..07ddd1d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor2.java
@@ -0,0 +1,24 @@
+package statements_out; // 21, 13, 21, 20
+public team class T_testTypeAnchor2 {
+	public final R0 r;
+	T_testTypeAnchor2()
+	{
+		r = new R0(new InnerTeam());
+	}
+	public class R0 {
+		public final InnerTeam it;
+		R0(InnerTeam it) {
+			this.it = it;
+		}
+	}
+	public team class InnerTeam {
+		public class R1 {
+			
+		}		
+	}
+	public static void main(String[] args) {
+		final T_testTypeAnchor2 t1 = new T_testTypeAnchor2();
+		final InnerTeam extracted = t1.r.it;
+		R1<@extracted> r1 = null;
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor3.java
new file mode 100644
index 0000000..44e2582
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testTypeAnchor3.java
@@ -0,0 +1,22 @@
+package statements_out; // 19, 13, 19, 20
+public team class T_testTypeAnchor2 {
+	public final R0 r;
+	T_testTypeAnchor2()
+	{
+		r = new R0();
+	}
+	public team class R0 {
+		public final R1 r1;
+		R0() {
+			this.it = it;
+		}
+		public team class R1 {
+			public class R2 {}
+		}		
+	}
+	public static void main(String[] args) {
+		final T_testTypeAnchor2 t1 = new T_testTypeAnchor2();
+		final R1<@t1.r> extracted=t1.r.r1;
+		R2<@extracted> r2 = null;
+	}
+}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testWithin1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testWithin1.java
new file mode 100644
index 0000000..4e8db4f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testWithin1.java
@@ -0,0 +1,16 @@
+package statements_out; // 9,16 - 9, 35
+/**
+ * @author stephan
+ *
+ */
+public team class T_testWithin1 {
+	public static void main(String[] args) {
+		int i = 7;
+		T_testWithin1 extracted = new T_testWithin1();
+		within(extracted) {
+			System.out.println("within1");
+		}
+		System.err.println("after");
+	}
+}
+ 
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testWithin2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testWithin2.java
new file mode 100644
index 0000000..1fa9988
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/ExtractTemp/statements_out/T_testWithin2.java
@@ -0,0 +1,15 @@
+package statements_out; // 9,16 - 9, 35
+/**
+ * @author stephan
+ *
+ */
+public team class T_testWithin2 {
+	public static void main(String[] args) {
+		int i = 7;
+		T_testWithin2 extracted = new T_testWithin2();
+		within(extracted)
+			System.out.println("within2");
+		System.err.println("after");
+	}
+}
+ 
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/in/B.java
new file mode 100644
index 0000000..fd30e05
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/in/T.java
new file mode 100644
index 0000000..af7713f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		protected void n(){

+		}

+		n <- after m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/out/B.java
new file mode 100644
index 0000000..f857c12
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/out/B.java
@@ -0,0 +1,19 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		int baseResult = base_m();

+		n();

+		return baseResult;

+	}

+

+	private void n()

+	{

+	}

+

+	public int base_m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/out/T.java
new file mode 100644
index 0000000..9fa60fb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testAfterCallinWithReturn/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		protected void n(){

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/in/B.java
new file mode 100644
index 0000000..779358c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+	public void m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/in/T.java
new file mode 100644
index 0000000..47b7bbb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+		void n() <- after void m();

+		void n() <- after void m(int i);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/out/B.java
new file mode 100644
index 0000000..205da57
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+		n();

+	}

+	private void n()

+	{

+	}

+	public void base_m()

+	{

+	}

+	public void m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/out/T.java
new file mode 100644
index 0000000..24a136c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testCallinMappingWithSignature/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+		void n() <- after void m(int i);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteReferencedRoleMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteReferencedRoleMethod/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteReferencedRoleMethod/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteReferencedRoleMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteReferencedRoleMethod/in/T.java
new file mode 100644
index 0000000..28d4f7d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteReferencedRoleMethod/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		private void o(){

+			n();

+		}

+		

+		private void n(){

+		}

+		n <- before m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/in/T.java
new file mode 100644
index 0000000..42e5e13
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/out/B.java
new file mode 100644
index 0000000..aa764ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		n();

+	}

+

+	private void n()

+	{

+		base_m();

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/out/T.java
new file mode 100644
index 0000000..92a33cb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDeleteRoleMethod/out/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole1/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole1/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole1/in/T.java
new file mode 100644
index 0000000..65bb902
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole1/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+			other();

+		}

+		n <- before m;

+		

+		private void other(){

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole2/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole2/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole2/in/T.java
new file mode 100644
index 0000000..e9df038
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDependencyToRole2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		private int f;

+		public void n(){

+			f = 5;

+		}

+		n <- before m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/in/B.java
new file mode 100644
index 0000000..1ee2906
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int i, String s)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/in/T.java
new file mode 100644
index 0000000..fd9157a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int j){

+			int v = j;

+			base.n(j);

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/out/B.java
new file mode 100644
index 0000000..5f19372
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public void m(int i, String s)

+	{

+		n(i, s);

+	}

+

+	private void n(int j, String s)

+	{

+		int v = j;

+		base_m(j, s);

+	}

+

+	public void base_m(int i, String s)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/out/T.java
new file mode 100644
index 0000000..d66fa75
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamLength/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int j){

+			int v = j;

+			base.n(j);

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/in/B.java
new file mode 100644
index 0000000..4ebd5c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/in/T.java
new file mode 100644
index 0000000..fd9157a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int j){

+			int v = j;

+			base.n(j);

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/out/B.java
new file mode 100644
index 0000000..0a87f2d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+		n(i);

+	}

+

+	private void n(int j)

+	{

+		int v = j;

+		base_m(j);

+	}

+

+	public void base_m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/out/T.java
new file mode 100644
index 0000000..d66fa75
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testDifferentParamNames/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int j){

+			int v = j;

+			base.n(j);

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/T1.java
new file mode 100644
index 0000000..3701a6e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/T1.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T1{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/T2.java
new file mode 100644
index 0000000..27cc748
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin1/in/T2.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T2{

+	

+	T1 team1 = new Team1();

+	

+	protected class R playedBy R<@team1>{

+		callin void n(){

+			base.n();

+		}

+		n <- replace n;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/T1.java
new file mode 100644
index 0000000..3701a6e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/T1.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T1{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/T2.java
new file mode 100644
index 0000000..b3a0563
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineBoundCallin2/in/T2.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T2{

+	

+	T1 team1 = new Team1();

+	

+	protected class R playedBy R<@team1>{	

+		void n() -> void n();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/in/B.java
new file mode 100644
index 0000000..40330f0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B{

+	public void m1()

+	{

+	}

+	public void m2()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/in/T.java
new file mode 100644
index 0000000..39b6aee
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+		n <- after m1,m2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/out/B.java
new file mode 100644
index 0000000..3a5b24c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/out/B.java
@@ -0,0 +1,23 @@
+package p;

+

+public class B{

+	public void m1()

+	{

+		base_m1();

+		n();

+	}

+	private void n()

+	{

+	}

+	public void base_m1()

+	{

+	}

+	public void m2()

+	{

+		base_m2();

+		n();

+	}

+	public void base_m2()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/out/T.java
new file mode 100644
index 0000000..600c0a9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testInlineMultipleCallins/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/in/B.java
new file mode 100644
index 0000000..3902235
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+	public void m2()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/in/T.java
new file mode 100644
index 0000000..4012a6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+		n <- after m,m2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/out/B.java
new file mode 100644
index 0000000..6f11091
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+		n();

+	}

+	private void n()

+	{

+	}

+	public void base_m()

+	{

+	}

+	public void m2()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/out/T.java
new file mode 100644
index 0000000..f48b788
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testMultipleBaseMethodCallin/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+		n <- after m2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/in/B.java
new file mode 100644
index 0000000..4ebd5c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/in/T.java
new file mode 100644
index 0000000..42e5e13
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/out/B.java
new file mode 100644
index 0000000..d76f77e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+		n(i);

+	}

+

+	private void n(int i)

+	{

+		base_m(i);

+	}

+

+	public void base_m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/out/T.java
new file mode 100644
index 0000000..6ae4f36
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling1/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/in/B.java
new file mode 100644
index 0000000..4ebd5c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/in/T.java
new file mode 100644
index 0000000..1e8f9dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			int i;

+			base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/out/B.java
new file mode 100644
index 0000000..8da1929
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public void m(int i)

+	{

+		n(i);

+	}

+

+	private void n(int i2)

+	{

+		int i;

+		base_m(i2);

+	}

+

+	public void base_m(int i)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/out/T.java
new file mode 100644
index 0000000..2e3c6e7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testParameterTunneling2/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			int i;

+			base.n();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/in/B.java
new file mode 100644
index 0000000..fd30e05
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/in/T.java
new file mode 100644
index 0000000..d7f2bb9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+			int i = 1;

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/out/B.java
new file mode 100644
index 0000000..ea6bf7b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/out/B.java
@@ -0,0 +1,21 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return n();

+	}

+

+	private int n()

+	{

+		int baseResult;

+		baseResult = base_m();

+		int i = 1;

+		return baseResult;

+	}

+

+	public int base_m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/out/T.java
new file mode 100644
index 0000000..bf3e975
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling1/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+			int i = 1;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/in/B.java
new file mode 100644
index 0000000..fd30e05
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/in/T.java
new file mode 100644
index 0000000..9635554
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+			int i = 1;

+		}

+		void n() <- replace int m() with{

+			5 -> result

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/out/B.java
new file mode 100644
index 0000000..acee00a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/out/B.java
@@ -0,0 +1,20 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return n();

+	}

+

+	private int n()

+	{

+		base_m();

+		int i = 1;

+		return 5;

+	}

+

+	public int base_m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/out/T.java
new file mode 100644
index 0000000..bf3e975
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinResultTunneling2/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+			int i = 1;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/in/T.java
new file mode 100644
index 0000000..4da59af
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/in/T.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			if(true){

+				base.n();

+				return;

+			}else{

+				base.n();

+				return;

+			}

+			return;

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/out/B.java
new file mode 100644
index 0000000..00c13d2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/out/B.java
@@ -0,0 +1,24 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		n();

+	}

+

+	private void n()

+	{

+		if (true) {

+			base_m();

+			return;

+		} else {

+			base_m();

+			return;

+		}

+		return;

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/out/T.java
new file mode 100644
index 0000000..f503502
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithMultipleReturns/out/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			if(true){

+				base.n();

+				return;

+			}else{

+				base.n();

+				return;

+			}

+			return;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/in/B.java
new file mode 100644
index 0000000..1ee2906
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int i, String s)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/in/T.java
new file mode 100644
index 0000000..f1bb289
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int i, String s){

+			base.n(i, s);

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/out/B.java
new file mode 100644
index 0000000..1e36403
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m(int i, String s)

+	{

+		n(i, s);

+	}

+

+	private void n(int i, String s)

+	{

+		base_m(i, s);

+	}

+

+	public void base_m(int i, String s)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/out/T.java
new file mode 100644
index 0000000..aff236b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithParameter/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int i, String s){

+			base.n(i, s);

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/in/B.java
new file mode 100644
index 0000000..fd30e05
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/in/T.java
new file mode 100644
index 0000000..21d7884
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin int n(){

+			return base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/out/B.java
new file mode 100644
index 0000000..a86c12f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public int m()

+	{

+		return n();

+	}

+

+	private int n()

+	{

+		return base_m();

+	}

+

+	public int base_m()

+	{

+		return 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/out/T.java
new file mode 100644
index 0000000..169c6de
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceCallinWithReturn/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin int n(){

+			return base.n();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/in/B.java
new file mode 100644
index 0000000..44890c7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int j, int k)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/in/T.java
new file mode 100644
index 0000000..eb6209c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/in/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int i){

+			base.n(i);

+		}

+		void n(int x) <- replace void m(int y, int z) with{

+			x <- z

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/out/B.java
new file mode 100644
index 0000000..9c24904
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m(int j, int k)

+	{

+		n(k, tunneledJ);

+	}

+

+	private void n(int i, int tunneledJ)

+	{

+		base_m(tunneledJ, i);

+	}

+

+	public void base_m(int j, int k)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/out/T.java
new file mode 100644
index 0000000..5668b62
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testReplaceWithParameterMapping/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(int i){

+			base.n(i);

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/in/B.java
new file mode 100644
index 0000000..05e6ad8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+	

+	public void v(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/in/T.java
new file mode 100644
index 0000000..6d4bd56
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		void calloutV() -> void v();

+		

+		protected void n(){

+			calloutV();

+		}

+		n <- after m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/out/B.java
new file mode 100644
index 0000000..f9f96ed
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/out/B.java
@@ -0,0 +1,21 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+		n();

+	}

+

+	private void n()

+	{

+		v();

+	}

+

+	public void base_m()

+	{

+	}

+	

+	public void v(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/out/T.java
new file mode 100644
index 0000000..077f84e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCallout/out/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		void calloutV() -> void v();

+		

+		protected void n(){

+			calloutV();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/in/B.java
new file mode 100644
index 0000000..bc10ba3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B{

+	

+	private int f = 1;

+	

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/in/T.java
new file mode 100644
index 0000000..7fae228
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		int getF() -> get int f;

+		

+		protected void n(){

+			int g = getF();

+		}

+		n <- after m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/out/B.java
new file mode 100644
index 0000000..14c5415
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/out/B.java
@@ -0,0 +1,21 @@
+package p;

+

+public class B{

+	

+	private int f = 1;

+	

+	public void m()

+	{

+		base_m();

+		n();

+	}

+

+	private void n()

+	{

+		int g = f;

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/out/T.java
new file mode 100644
index 0000000..622201d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldGet/out/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		int getF() -> get int f;

+		

+		protected void n(){

+			int g = getF();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/in/B.java
new file mode 100644
index 0000000..e664af5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B{

+	

+	private int f;

+	

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/in/T.java
new file mode 100644
index 0000000..5206abe
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		int setF(int i) -> set int f;

+		

+		protected void n(){

+			setF(1);

+		}

+		n <- after m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/out/B.java
new file mode 100644
index 0000000..6fcaff3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/out/B.java
@@ -0,0 +1,21 @@
+package p;

+

+public class B{

+	

+	private int f;

+	

+	public void m()

+	{

+		base_m();

+		n();

+	}

+

+	private void n()

+	{

+		f = 1;

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/out/T.java
new file mode 100644
index 0000000..462752e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testRoleMethodReferencesCalloutToFieldSet/out/T.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		

+		int setF(int i) -> set int f;

+		

+		protected void n(){

+			setF(1);

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/in/B.java
new file mode 100644
index 0000000..dcba9d3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public class B{

+	// comment for method m()

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/in/T.java
new file mode 100644
index 0000000..2239dc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		// comment for method n

+		public void n(){

+		}

+		// This is the long comment describing this callin.

+		n <- after m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/out/B.java
new file mode 100644
index 0000000..40bfe24
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/out/B.java
@@ -0,0 +1,18 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		base_m();

+		n();

+	}

+

+	private void n()

+	{

+	}

+

+	// comment for method m()

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/out/T.java
new file mode 100644
index 0000000..e594393
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleAfterCallin/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		// comment for method n

+		public void n(){

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/in/T.java
new file mode 100644
index 0000000..52b254b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+		n <- before m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/out/B.java
new file mode 100644
index 0000000..25c8041
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		n();

+		base_m();

+	}

+

+	private void n()

+	{

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/out/T.java
new file mode 100644
index 0000000..600c0a9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleBeforeCallin/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		public void n(){

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/in/B.java
new file mode 100644
index 0000000..44890c7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m(int j, int k)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/in/T.java
new file mode 100644
index 0000000..d07ae80
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		private void n(int i){

+		}

+		void n(int x) <- after void m(int y, int z) with{

+			x <- z + 1

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/out/B.java
new file mode 100644
index 0000000..8cd15b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m(int j, int k)

+	{

+		base_m(j, k);

+		n(k + 1);

+	}

+

+	private void n(int i)

+	{

+	}

+

+	public void base_m(int j, int k)

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/out/T.java
new file mode 100644
index 0000000..94eddc3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleParameterMapping/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		private void n(int i){

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/in/B.java
new file mode 100644
index 0000000..2c0bdfc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/in/B.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B{

+	public void m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/in/T.java
new file mode 100644
index 0000000..42e5e13
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+		n <- replace m;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/out/B.java
new file mode 100644
index 0000000..aa764ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/out/B.java
@@ -0,0 +1,17 @@
+package p;

+

+public class B{

+	public void m()

+	{

+		n();

+	}

+

+	private void n()

+	{

+		base_m();

+	}

+

+	public void base_m()

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/out/T.java
new file mode 100644
index 0000000..6ae4f36
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/InlineCallin/testSimpleReplaceCallin/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T{

+	protected class R playedBy B{

+		callin void n(){

+			base.n();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/O.java
new file mode 100644
index 0000000..2045eb9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.toString();

+		_b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/T.java
new file mode 100644
index 0000000..4c92e61
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/in/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+    public class R1 extends S playedBy O

+    {

+        public void m(String str){}

+    }

+    

+    public class R2 extends R1

+    {

+        public void m(String str){}

+        

+        void m(String str) <- before void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/O.java
new file mode 100644
index 0000000..2f7b782
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.m(this, str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/S.java
new file mode 100644
index 0000000..879d319
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/S.java
@@ -0,0 +1,11 @@
+package p;

+

+public class S

+{

+

+	public void m(O o, String str, int x)

+	{

+		toString();

+		o._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/T.java
new file mode 100644
index 0000000..4c92e61
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testExplicitlyInheritedRoleClassWithLongMethodSpecs/out/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+    public class R1 extends S playedBy O

+    {

+        public void m(String str){}

+    }

+    

+    public class R2 extends R1

+    {

+        public void m(String str){}

+        

+        void m(String str) <- before void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/in/A.java
new file mode 100644
index 0000000..639a957
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/in/A.java
@@ -0,0 +1,11 @@
+package p;

+

+public class A

+{

+	private B b;

+

+	public void mA()

+	{

+		b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/out/A.java
new file mode 100644
index 0000000..88ba9df
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/out/A.java
@@ -0,0 +1,6 @@
+package p;

+

+public class A

+{

+	B b;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/out/B.java
new file mode 100644
index 0000000..028ebcf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testFieldNewReceiver/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B

+{

+

+	public void mA()

+	{

+		toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/O.java
new file mode 100644
index 0000000..2045eb9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.toString();

+		_b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/T1.java
new file mode 100644
index 0000000..028b9c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R extends S playedBy O

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/T2.java
new file mode 100644
index 0000000..04f9eef
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/in/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R

+    {

+        public void m(String str){}

+        

+        void m(String str) <- before void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/O.java
new file mode 100644
index 0000000..2f7b782
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.m(this, str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/S.java
new file mode 100644
index 0000000..879d319
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/S.java
@@ -0,0 +1,11 @@
+package p;

+

+public class S

+{

+

+	public void m(O o, String str, int x)

+	{

+		toString();

+		o._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/T1.java
new file mode 100644
index 0000000..028b9c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R extends S playedBy O

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/T2.java
new file mode 100644
index 0000000..04f9eef
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testImplicitlyInheritedRoleClassWithLongMethodSpecs/out/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R

+    {

+        public void m(String str){}

+        

+        void m(String str) <- before void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/in/O.java
new file mode 100644
index 0000000..2df9e93
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/in/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+	t.NestedTeam _nT;

+

+	public void bar(String str, int x)

+	{

+		_nT.foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/in/T.java
new file mode 100644
index 0000000..a95a2fb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public team class NestedTeam

+	{

+		public void foo(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/out/O.java
new file mode 100644
index 0000000..bdd8cd5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/out/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+	t.NestedTeam _nT;

+

+	public void bar(String str, int x)

+	{

+		_nT.bar(str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/out/T.java
new file mode 100644
index 0000000..2976235
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam1/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public team class NestedTeam

+	{

+		public void foo(){}

+

+		public void bar(String str, int x)

+		{

+			foo();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/in/O.java
new file mode 100644
index 0000000..71ddbb3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+

+	public void bar(t.NestedTeam nT, String str, int x)

+	{

+		nT.foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/in/T.java
new file mode 100644
index 0000000..a95a2fb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public team class NestedTeam

+	{

+		public void foo(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/out/O.java
new file mode 100644
index 0000000..d461374
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/out/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+

+	public void bar(t.NestedTeam nT, String str, int x)

+	{

+		nT.bar(str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/out/T.java
new file mode 100644
index 0000000..2976235
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testNestedTeam2/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public team class NestedTeam

+	{

+		public void foo(){}

+

+		public void bar(String str, int x)

+		{

+			foo();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/in/A.java
new file mode 100644
index 0000000..233208c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/in/A.java
@@ -0,0 +1,9 @@
+package p;

+

+public class A

+{

+	public void mA(B b)

+	{

+		b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/out/A.java
new file mode 100644
index 0000000..1b163b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/out/A.java
@@ -0,0 +1,5 @@
+package p;

+

+public class A

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/out/B.java
new file mode 100644
index 0000000..028ebcf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testParameterNewReceiver/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B

+{

+

+	public void mA()

+	{

+		toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/O.java
new file mode 100644
index 0000000..2045eb9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.toString();

+		_b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/T.java
new file mode 100644
index 0000000..c9f27b0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public void m(String str){}

+        

+        void m(String str) <- before void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/O.java
new file mode 100644
index 0000000..2f7b782
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.m(this, str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/S.java
new file mode 100644
index 0000000..879d319
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/S.java
@@ -0,0 +1,11 @@
+package p;

+

+public class S

+{

+

+	public void m(O o, String str, int x)

+	{

+		toString();

+		o._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/T.java
new file mode 100644
index 0000000..c9f27b0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCallinBinding/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public void m(String str){}

+        

+        void m(String str) <- before void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/O.java
new file mode 100644
index 0000000..2045eb9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.toString();

+		_b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/T.java
new file mode 100644
index 0000000..99a3926
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public void m(String str){}

+        

+        void m(String str) -> void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/O.java
new file mode 100644
index 0000000..2f7b782
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O extends S

+{

+	private S _s;

+	protected B _b;

+

+	public void m(String str, int x)

+	{

+		_s.m(this, str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/S.java
new file mode 100644
index 0000000..879d319
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/S.java
@@ -0,0 +1,11 @@
+package p;

+

+public class S

+{

+

+	public void m(O o, String str, int x)

+	{

+		toString();

+		o._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/T.java
new file mode 100644
index 0000000..99a3926
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleClassWithLongMethodSpecsInCalloutBinding/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public void m(String str){}

+        

+        void m(String str) -> void m(String str, int x);

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/in/O.java
new file mode 100644
index 0000000..8b0119a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/in/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+	t.R _r;

+

+	public void bar(String str, int x)

+	{

+		_r.foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/in/T.java
new file mode 100644
index 0000000..b46c7e1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		public void foo(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/out/O.java
new file mode 100644
index 0000000..d8b9016
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/out/O.java
@@ -0,0 +1,12 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+	t.R _r;

+

+	public void bar(String str, int x)

+	{

+		_r.bar(str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/out/T.java
new file mode 100644
index 0000000..d0236e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass1/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		public void foo(){}

+

+		public void bar(String str, int x)

+		{

+			foo();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/in/O.java
new file mode 100644
index 0000000..d9f45c8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+

+	public void bar(t.R r, String str, int x)

+	{

+		r.foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/in/T.java
new file mode 100644
index 0000000..b46c7e1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		public void foo(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/out/O.java
new file mode 100644
index 0000000..6018a35
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/out/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+	final T t = new T();

+

+	public void bar(t.R r, String str, int x)

+	{

+		r.bar(str, x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/out/T.java
new file mode 100644
index 0000000..d0236e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testRoleclass2/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		public void foo(){}

+

+		public void bar(String str, int x)

+		{

+			foo();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/A.java
new file mode 100644
index 0000000..b3a211f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/A.java
@@ -0,0 +1,15 @@
+package p1;

+

+import p2.C;

+

+public class A

+{

+    B _b;

+    public C _c;

+    

+    public void mA()

+    {

+        _b.toString();

+        _c.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/C.java
new file mode 100644
index 0000000..1addfc3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/in/C.java
@@ -0,0 +1,5 @@
+package p2;

+

+public class C

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/A.java
new file mode 100644
index 0000000..1b0bc4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/A.java
@@ -0,0 +1,9 @@
+package p1;

+

+import p2.C;

+

+public class A

+{

+    public B _b;

+    public C _c;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/C.java
new file mode 100644
index 0000000..8ad3b88
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType1/out/C.java
@@ -0,0 +1,13 @@
+package p2;

+

+import p1.A;

+

+public class C

+{

+

+	public void mA(A a)

+	{

+	    a._b.toString();

+	    toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/A.java
new file mode 100644
index 0000000..8e2e7d6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/A.java
@@ -0,0 +1,13 @@
+package p1;

+

+import p2.C;

+

+public class A

+{

+    B _b;

+    

+    public void mA(C c)

+    {

+        _b.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/C.java
new file mode 100644
index 0000000..1addfc3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/in/C.java
@@ -0,0 +1,5 @@
+package p2;

+

+public class C

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/A.java
new file mode 100644
index 0000000..2271220
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/A.java
@@ -0,0 +1,7 @@
+package p1;

+

+

+public class A

+{

+    public B _b;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/C.java
new file mode 100644
index 0000000..8f53ce0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPackageVisibleFeatureOfEnclosingType2/out/C.java
@@ -0,0 +1,12 @@
+package p2;

+

+import p1.A;

+

+public class C

+{

+

+	public void mA(A a)

+	{

+	    a._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/A.java
new file mode 100644
index 0000000..052c536
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/A.java
@@ -0,0 +1,13 @@
+package p;

+

+public class A

+{

+    private B _b;

+    public C _c;

+    

+    public void mA()

+    {

+        _b.toString();

+        _c.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/C.java
new file mode 100644
index 0000000..f6a628c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/in/C.java
@@ -0,0 +1,5 @@
+package p;

+

+public class C

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/A.java
new file mode 100644
index 0000000..eaaf319
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/A.java
@@ -0,0 +1,7 @@
+package p;

+

+public class A

+{

+    B _b;

+    public C _c;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/C.java
new file mode 100644
index 0000000..b3b790d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType1/out/C.java
@@ -0,0 +1,11 @@
+package p;

+

+public class C

+{

+

+	public void mA(A a)

+	{

+	    a._b.toString();

+	    toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/A.java
new file mode 100644
index 0000000..6c6fed4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/A.java
@@ -0,0 +1,11 @@
+package p;

+

+public class A

+{

+    private B _b;

+    

+    public void mA(C c)

+    {

+        _b.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/C.java
new file mode 100644
index 0000000..f6a628c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/in/C.java
@@ -0,0 +1,5 @@
+package p;

+

+public class C

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/A.java
new file mode 100644
index 0000000..c76240a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/A.java
@@ -0,0 +1,6 @@
+package p;

+

+public class A

+{

+    B _b;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/C.java
new file mode 100644
index 0000000..e6cbcd1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesPrivateFeatureOfEnclosingType2/out/C.java
@@ -0,0 +1,10 @@
+package p;

+

+public class C

+{

+

+	public void mA(A a)

+	{

+	    a._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/A.java
new file mode 100644
index 0000000..9e67365
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/A.java
@@ -0,0 +1,15 @@
+package p1;

+

+import p2.C;

+

+public class A

+{

+    protected B _b;

+    public C _c;

+    

+    public void mA()

+    {

+        _b.toString();

+        _c.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/C.java
new file mode 100644
index 0000000..1addfc3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/in/C.java
@@ -0,0 +1,5 @@
+package p2;

+

+public class C

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/A.java
new file mode 100644
index 0000000..1b0bc4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/A.java
@@ -0,0 +1,9 @@
+package p1;

+

+import p2.C;

+

+public class A

+{

+    public B _b;

+    public C _c;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/C.java
new file mode 100644
index 0000000..8ad3b88
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType1/out/C.java
@@ -0,0 +1,13 @@
+package p2;

+

+import p1.A;

+

+public class C

+{

+

+	public void mA(A a)

+	{

+	    a._b.toString();

+	    toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/A.java
new file mode 100644
index 0000000..2aebb9b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/A.java
@@ -0,0 +1,13 @@
+package p1;

+

+import p2.C;

+

+public class A

+{

+    protected B _b;

+    

+    public void mA(C c)

+    {

+        _b.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/C.java
new file mode 100644
index 0000000..1addfc3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/in/C.java
@@ -0,0 +1,5 @@
+package p2;

+

+public class C

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/A.java
new file mode 100644
index 0000000..2271220
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/A.java
@@ -0,0 +1,7 @@
+package p1;

+

+

+public class A

+{

+    public B _b;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/B.java
new file mode 100644
index 0000000..e725f6a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/B.java
@@ -0,0 +1,5 @@
+package p1;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/C.java
new file mode 100644
index 0000000..8f53ce0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTargetMethodAccessesProtectedFeatureOfEnclosingType2/out/C.java
@@ -0,0 +1,12 @@
+package p2;

+

+import p1.A;

+

+public class C

+{

+

+	public void mA(A a)

+	{

+	    a._b.toString();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/in/O.java
new file mode 100644
index 0000000..1522fd9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+	private T _t;

+

+	public void bar(String str, int x)

+	{

+		_t.foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/in/T.java
new file mode 100644
index 0000000..5a5f3b7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T

+{

+	public void foo(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/out/O.java
new file mode 100644
index 0000000..34ad6a5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/out/O.java
@@ -0,0 +1,6 @@
+package p;

+

+public class O

+{

+	T _t;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/out/T.java
new file mode 100644
index 0000000..34a96ce
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass1/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public void foo(){}

+

+	public void bar(String str, int x)

+	{

+		foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/in/O.java
new file mode 100644
index 0000000..3069da2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/in/O.java
@@ -0,0 +1,9 @@
+package p;

+

+public class O

+{

+	public void bar(T t, int x)

+	{

+		t.foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/in/T.java
new file mode 100644
index 0000000..5a5f3b7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T

+{

+	public void foo(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/out/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/out/O.java
new file mode 100644
index 0000000..26e8b4a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/out/O.java
@@ -0,0 +1,9 @@
+package p;

+

+public class O

+{

+	public void bar(T t, int x)

+	{

+		t.bar(x);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/out/T.java
new file mode 100644
index 0000000..8b3878c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/canMove/testTeamclass2/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public void foo(){}

+

+	public void bar(int x)

+	{

+		foo();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/O.java
new file mode 100644
index 0000000..7c8c358
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    protected B _b;

+    

+    public void m()

+    {

+        _s.toString();

+        _b.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/T.java
new file mode 100644
index 0000000..a5fb179
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy O

+    {

+        public void f(){}

+        

+        f <- after m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/O.java
new file mode 100644
index 0000000..e58244e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/O.java
@@ -0,0 +1,9 @@
+package p;

+

+public class O extends S

+{

+    public void m(S s)

+    {

+        s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/T.java
new file mode 100644
index 0000000..a5fb179
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCallinBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy O

+    {

+        public void f(){}

+        

+        f <- after m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/O.java
new file mode 100644
index 0000000..7c8c358
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    protected B _b;

+    

+    public void m()

+    {

+        _s.toString();

+        _b.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/T.java
new file mode 100644
index 0000000..e45a842
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy O

+    {

+        public abstract void f();

+        

+        f -> m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/O.java
new file mode 100644
index 0000000..e58244e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/O.java
@@ -0,0 +1,9 @@
+package p;

+

+public class O extends S

+{

+    public void m(S s)

+    {

+        s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/T.java
new file mode 100644
index 0000000..e45a842
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousBaseMethodSpecifierInCalloutBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy O

+    {

+        public abstract void f();

+        

+        f -> m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/B.java
new file mode 100644
index 0000000..437e7d4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void f(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/O.java
new file mode 100644
index 0000000..ec6e96c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    protected T _t;

+    

+    public void m()

+    {

+        _s.toString();

+        _t = new T();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/T.java
new file mode 100644
index 0000000..711f30f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy B

+    {

+        public void m(int x){}

+        

+        m <- after f;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/O.java
new file mode 100644
index 0000000..ed5937d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+    public void m(S s)

+    {

+        s.toString();

+    }

+    

+    public void f(int y){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/T.java
new file mode 100644
index 0000000..06ae701
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCallinBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public void m(int x){}

+        

+        m <- after f;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/B.java
new file mode 100644
index 0000000..437e7d4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void f(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/O.java
new file mode 100644
index 0000000..ec6e96c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/O.java
@@ -0,0 +1,13 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    protected T _t;

+    

+    public void m()

+    {

+        _s.toString();

+        _t = new T();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/T.java
new file mode 100644
index 0000000..4dbbfda
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy B

+    {

+        public abstract void m(int x);

+        

+        m -> f;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/O.java
new file mode 100644
index 0000000..ed5937d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+    public void m(S s)

+    {

+        s.toString();

+    }

+    

+    public void f(int y){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/T.java
new file mode 100644
index 0000000..31a59d0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testAmbiguousRoleMethodSpecifierInCalloutBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public abstract void m(int x);

+        

+        m -> f;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/O.java
new file mode 100644
index 0000000..33b8f33
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+    private S _s;

+    

+    public void m(int x)

+    {

+        _s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/S.java
new file mode 100644
index 0000000..c7b8357
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/S.java
@@ -0,0 +1,6 @@
+package p;

+

+public class S

+{

+    public void m(int x){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/T.java
new file mode 100644
index 0000000..2560048
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInBaseClassReceiver/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy S

+    {

+        public abstract void f();

+        

+        f -> m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver1/in/A.java
new file mode 100644
index 0000000..175db52
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver1/in/A.java
@@ -0,0 +1,10 @@
+package p;

+

+public class A

+{

+

+    public void m(B b)

+    {

+

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver1/in/B.java
new file mode 100644
index 0000000..043e3b5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver1/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B

+{

+    

+    public void m()

+    {

+

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver2/in/A.java
new file mode 100644
index 0000000..7ee5a28
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver2/in/A.java
@@ -0,0 +1,12 @@
+package p;

+

+public class A

+{

+

+    public B _b;

+    

+    public void m(B b)

+    {

+        _b.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver2/in/B.java
new file mode 100644
index 0000000..5538b7b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewParameterReceiver2/in/B.java
@@ -0,0 +1,10 @@
+package p;

+

+public class B

+{

+    

+    public void m(A a)

+    {

+

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewReceiver/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewReceiver/in/O.java
new file mode 100644
index 0000000..33b8f33
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewReceiver/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O

+{

+    private S _s;

+    

+    public void m(int x)

+    {

+        _s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewReceiver/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewReceiver/in/S.java
new file mode 100644
index 0000000..c7b8357
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testDuplicateMethodInNewReceiver/in/S.java
@@ -0,0 +1,6 @@
+package p;

+

+public class S

+{

+    public void m(int x){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/O.java
new file mode 100644
index 0000000..7736189
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    

+    public void m()

+    {

+        _s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/T.java
new file mode 100644
index 0000000..710ac2d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInBaseClass/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R extends S playedBy O

+    {

+        public abstract void f();

+        

+        f -> m;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/O.java
new file mode 100644
index 0000000..cae38f5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    

+    public void m(int x)

+    {

+        _s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/T.java
new file mode 100644
index 0000000..2a14d5d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInExplicitlyInheritedRoleClass/in/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+    public class R1 extends S

+    {

+    }

+    

+    public class R2 extends R1

+    {

+        public void m(int y)

+        {

+            y = 3;

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/O.java
new file mode 100644
index 0000000..cae38f5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    

+    public void m(int x)

+    {

+        _s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/T1.java
new file mode 100644
index 0000000..4bea5d2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R extends S

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/T2.java
new file mode 100644
index 0000000..1c3d630
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInImplicitlyInheritedRoleClass/in/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R

+    {

+        public void m(int y)

+        {

+            y = 3;

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/O.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/O.java
new file mode 100644
index 0000000..cae38f5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/O.java
@@ -0,0 +1,11 @@
+package p;

+

+public class O extends S

+{

+    private S _s;

+    

+    public void m(int x)

+    {

+        _s.toString();

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/S.java
new file mode 100644
index 0000000..56e61f6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/S.java
@@ -0,0 +1,5 @@
+package p;

+

+public class S

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/T.java
new file mode 100644
index 0000000..8756a2c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testMovedMethodIsOverriddenInRoleClass/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+    public class R extends S

+    {

+        public void m(int y){}

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testTargetMethodIsPrivate/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testTargetMethodIsPrivate/in/A.java
new file mode 100644
index 0000000..0a802c5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testTargetMethodIsPrivate/in/A.java
@@ -0,0 +1,9 @@
+package p;

+

+public class A

+{

+    

+    private void mA(B b)

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testTargetMethodIsPrivate/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testTargetMethodIsPrivate/in/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveInstanceMethod/cannotMove/testTargetMethodIsPrivate/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/out/A.java
new file mode 100644
index 0000000..14904a4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/out/A.java
@@ -0,0 +1,3 @@
+package p;

+public class A{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/out/B.java
new file mode 100644
index 0000000..a7dfd85
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test0/out/B.java
@@ -0,0 +1,5 @@
+package p;

+class B{

+

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/in/A.java
new file mode 100644
index 0000000..9e3de83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/in/A.java
@@ -0,0 +1,10 @@
+package p;

+import java.util.ArrayList;

+import java.util.List;

+import java.util.Set;

+public class A {

+	public static Set set;

+	public static List m() {

+		return new ArrayList(set);

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/out/A.java
new file mode 100644
index 0000000..e90d632
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/out/A.java
@@ -0,0 +1,5 @@
+package p;

+import java.util.Set;

+public class A {

+	public static Set set;

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/out/B.java
new file mode 100644
index 0000000..c64b134
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test1/out/B.java
@@ -0,0 +1,11 @@
+package p;

+

+import java.util.ArrayList;

+import java.util.List;

+

+class B{

+

+	public static List m() {

+		return new ArrayList(A.set);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/in/A.java
new file mode 100644
index 0000000..ba9f5b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/in/A.java
@@ -0,0 +1,8 @@
+package p;

+public class A{

+	public static void m(){

+		A.m1();

+	}

+	public static void m1(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/out/A.java
new file mode 100644
index 0000000..a3b5f24
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/out/A.java
@@ -0,0 +1,5 @@
+package p;

+public class A{

+	public static void m1(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/out/B.java
new file mode 100644
index 0000000..59958dc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test10/out/B.java
@@ -0,0 +1,7 @@
+package p;

+class B{

+

+	public static void m(){

+		A.m1();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/in/A.java
new file mode 100644
index 0000000..1356107
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static int F;

+	public static void m(){

+		A.F= 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/out/A.java
new file mode 100644
index 0000000..8c30fb6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static int F;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/out/B.java
new file mode 100644
index 0000000..a584fbf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test11/out/B.java
@@ -0,0 +1,7 @@
+package p;

+class B{

+

+	public static void m(){

+		A.F= 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/in/A.java
new file mode 100644
index 0000000..e59ded1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static int F;

+	public static void m(){

+		F= 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/out/A.java
new file mode 100644
index 0000000..8c30fb6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static int F;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/out/B.java
new file mode 100644
index 0000000..a584fbf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test12/out/B.java
@@ -0,0 +1,7 @@
+package p;

+class B{

+

+	public static void m(){

+		A.F= 1;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/in/A.java
new file mode 100644
index 0000000..b2f4a07
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static class Inner{}

+	public static void m(){

+		new A.Inner();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/out/A.java
new file mode 100644
index 0000000..14c9ee2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static class Inner{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/out/B.java
new file mode 100644
index 0000000..e8af359
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test13/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+import p.A.Inner;

+

+class B{

+

+	public static void m(){

+		new A.Inner();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/in/A.java
new file mode 100644
index 0000000..ceaccc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static class Inner{}

+	public static void m(){

+		new Inner();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/out/A.java
new file mode 100644
index 0000000..14c9ee2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static class Inner{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/out/B.java
new file mode 100644
index 0000000..e8af359
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test14/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+import p.A.Inner;

+

+class B{

+

+	public static void m(){

+		new A.Inner();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/in/A.java
new file mode 100644
index 0000000..404ca2e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/in/A.java
@@ -0,0 +1,13 @@
+package p;

+public class A{

+	public static int F;

+	public static void m(){

+		F= 0;

+		new A().F= 0;

+		new A().i().F= 0;

+		new A().i().i().F= 0;

+	}

+	A i(){

+		return this;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/out/A.java
new file mode 100644
index 0000000..681c18a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/out/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static int F;

+	A i(){

+		return this;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/out/B.java
new file mode 100644
index 0000000..1e82633
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test15/out/B.java
@@ -0,0 +1,10 @@
+package p;

+class B{

+

+	public static void m(){

+		A.F= 0;

+		A.F= 0;

+		A.F= 0;

+		A.F= 0;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/in/A.java
new file mode 100644
index 0000000..806a299
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/in/A.java
@@ -0,0 +1,15 @@
+package p;

+public class A{

+	public static A F;

+	public static void m(){

+		F= null;

+		new A().F= null;

+		new A().i().F= null;

+		new A().i().i().F= null;

+		F.F= null;

+		F.F.F= null;

+	}

+	A i(){

+		return this;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/out/A.java
new file mode 100644
index 0000000..a58c4bd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/out/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static A F;

+	A i(){

+		return this;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/out/B.java
new file mode 100644
index 0000000..1b85e54
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test16/out/B.java
@@ -0,0 +1,12 @@
+package p;

+class B{

+

+	public static void m(){

+		A.F= null;

+		A.F= null;

+		A.F= null;

+		A.F= null;

+		A.F= null;

+		A.F= null;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/in/A.java
new file mode 100644
index 0000000..26178a2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static class Inner{}

+	public static void m(){

+		Inner[] i;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/out/A.java
new file mode 100644
index 0000000..14c9ee2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static class Inner{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/out/B.java
new file mode 100644
index 0000000..0f8a421
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test17/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+import p.A.Inner;

+

+class B{

+

+	public static void m(){

+		A.Inner[] i;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/in/A.java
new file mode 100644
index 0000000..cf3588b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static class Inner{}

+	public static void m(){

+		A.Inner[] i;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/out/A.java
new file mode 100644
index 0000000..14c9ee2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static class Inner{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/out/B.java
new file mode 100644
index 0000000..0f8a421
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test18/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+import p.A.Inner;

+

+class B{

+

+	public static void m(){

+		A.Inner[] i;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/in/A.java
new file mode 100644
index 0000000..919c883
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static class Inner{}

+	public static void m(){

+		Inner[][] i;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/out/A.java
new file mode 100644
index 0000000..14c9ee2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static class Inner{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/out/B.java
new file mode 100644
index 0000000..e2c6f2d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test19/out/B.java
@@ -0,0 +1,10 @@
+package p;

+

+import p.A.Inner;

+

+class B{

+

+	public static void m(){

+		A.Inner[][] i;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/in/A.java
new file mode 100644
index 0000000..f434210
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/in/A.java
@@ -0,0 +1,6 @@
+package p;

+public class A{

+	public static void m(){

+		B.n();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/in/B.java
new file mode 100644
index 0000000..c543866
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/in/B.java
@@ -0,0 +1,5 @@
+package p;

+class B{

+	public static void n(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/out/A.java
new file mode 100644
index 0000000..14904a4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/out/A.java
@@ -0,0 +1,3 @@
+package p;

+public class A{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/out/B.java
new file mode 100644
index 0000000..10195e1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test2/out/B.java
@@ -0,0 +1,9 @@
+package p;

+class B{

+	public static void n(){

+	}

+

+	public static void m(){

+		n();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/in/A.java
new file mode 100644
index 0000000..67de40a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/in/A.java
@@ -0,0 +1,12 @@
+package p;

+public class A{

+	public static class F{}

+	public static void m(){

+		A.F[] y;

+		F[] ff;

+		F[ ] ff1;

+		F[][] fff;

+		A.F[][] fff1;

+		p.A.F[ ][ ] fff2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/out/A.java
new file mode 100644
index 0000000..d178a55
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/out/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static class F{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/out/B.java
new file mode 100644
index 0000000..48e422a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test20/out/B.java
@@ -0,0 +1,15 @@
+package p;

+

+import p.A.F;

+

+class B{

+

+	public static void m(){

+		A.F[] y;

+		A.F[] ff;

+		A.F[ ] ff1;

+		A.F[][] fff;

+		A.F[][] fff1;

+		p.A.F[ ][ ] fff2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/in/A.java
new file mode 100644
index 0000000..8d47efd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/in/A.java
@@ -0,0 +1,9 @@
+package p;

+public class A{

+	public static void m() {

+		n();

+	}

+	public static void n() {

+		m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/out/A.java
new file mode 100644
index 0000000..14904a4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/out/A.java
@@ -0,0 +1,3 @@
+package p;

+public class A{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/out/B.java
new file mode 100644
index 0000000..4442f95
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test28/out/B.java
@@ -0,0 +1,11 @@
+package p;

+class B{

+

+	public static void m() {

+		n();

+	}

+

+	public static void n() {

+		m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/in/A.java
new file mode 100644
index 0000000..e2c6d7f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/in/A.java
@@ -0,0 +1,6 @@
+package p;

+public class A {

+	// Garbage code;

+	static void m() {

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/in/B.java
new file mode 100644
index 0000000..07b2ce7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/in/B.java
@@ -0,0 +1,3 @@
+package p;

+public class B {

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/out/A.java
new file mode 100644
index 0000000..a230f57
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/out/A.java
@@ -0,0 +1,3 @@
+package p;

+public class A {

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/out/B.java
new file mode 100644
index 0000000..896d753
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test29/out/B.java
@@ -0,0 +1,7 @@
+package p;

+public class B {

+

+	// Garbage code;

+	static void m() {

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/in/A.java
new file mode 100644
index 0000000..e71937a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static void m(){}

+	public static void n(){

+		A.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/out/A.java
new file mode 100644
index 0000000..54263d6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/out/A.java
@@ -0,0 +1,6 @@
+package p;

+public class A{

+	public static void n(){

+		B.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/out/B.java
new file mode 100644
index 0000000..a7dfd85
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test3/out/B.java
@@ -0,0 +1,5 @@
+package p;

+class B{

+

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/in/A.java
new file mode 100644
index 0000000..d1174c8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/in/A.java
@@ -0,0 +1,9 @@
+package p;

+public class A{

+	public static void m(){}

+	public void n(){

+		A.m();

+		p.A.m();

+		m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/out/A.java
new file mode 100644
index 0000000..97cb8dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/out/A.java
@@ -0,0 +1,8 @@
+package p;

+public class A{

+	public void n(){

+		B.m();

+		p.B.m();

+		B.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/out/B.java
new file mode 100644
index 0000000..a7dfd85
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test4/out/B.java
@@ -0,0 +1,5 @@
+package p;

+class B{

+

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/in/A.java
new file mode 100644
index 0000000..c3f1ba3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/in/A.java
@@ -0,0 +1,39 @@
+package p;

+/**

+ * @see p.A

+ * @see #m()

+ * @see A#m()

+ * @see p.A#m()

+ * @see #f

+ * @see A#f

+ * @see p.A#f

+ */

+public class A{

+	public A() {

+		m();

+		f= A.f;

+	}

+	

+	/**

+	 * @see A

+	 * @see p.A

+	 * @see #m()

+	 * @see A#m()

+	 * @see p.A#m()

+	 * @see #f

+	 * @see A#f

+	 * @see p.A#f

+	 */

+	public static void m(){

+		A.m();

+		m();

+		f= A.f;

+	}

+	

+	/**

+	 * @see #f

+	 * @see A#f

+	 * @see p.A#f

+	 */

+	public static int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/in/B.java
new file mode 100644
index 0000000..5df96a8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/in/B.java
@@ -0,0 +1,9 @@
+package p;

+/**

+ * @see A

+ * @see p.A

+ * @see p.A#m()

+ * @see p.A#f

+ */

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/out/A.java
new file mode 100644
index 0000000..24373ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/out/A.java
@@ -0,0 +1,23 @@
+package p;

+/**

+ * @see p.A

+ * @see B#m()

+ * @see B#m()

+ * @see p.B#m()

+ * @see #f

+ * @see A#f

+ * @see p.A#f

+ */

+public class A{

+	public A() {

+		B.m();

+		f= A.f;

+	}

+	

+	/**

+	 * @see #f

+	 * @see A#f

+	 * @see p.A#f

+	 */

+	public static int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/out/B.java
new file mode 100644
index 0000000..ecfb7d9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test41/out/B.java
@@ -0,0 +1,25 @@
+package p;

+/**

+ * @see A

+ * @see p.A

+ * @see p.B#m()

+ * @see p.A#f

+ */

+class B{

+

+	/**

+	 * @see A

+	 * @see p.A

+	 * @see #m()

+	 * @see B#m()

+	 * @see p.B#m()

+	 * @see A#f

+	 * @see A#f

+	 * @see p.A#f

+	 */

+	public static void m(){

+		B.m();

+		m();

+		A.f= A.f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/in/A.java
new file mode 100644
index 0000000..bc333f9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/in/A.java
@@ -0,0 +1,8 @@
+package p;

+public class A{

+	public static void m(){

+		m1();

+	}

+	public static void m1(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/out/A.java
new file mode 100644
index 0000000..a3b5f24
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/out/A.java
@@ -0,0 +1,5 @@
+package p;

+public class A{

+	public static void m1(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/out/B.java
new file mode 100644
index 0000000..59958dc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/test9/out/B.java
@@ -0,0 +1,7 @@
+package p;

+class B{

+

+	public static void m(){

+		A.m1();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail0/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail0/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail0/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail0/in/B.java
new file mode 100644
index 0000000..7f1fd4c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail0/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class X{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail1/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail1/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail1/in/B.java
new file mode 100644
index 0000000..e50e6fa
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail1/in/B.java
@@ -0,0 +1,4 @@
+package p;

+class B{

+	class X{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail10/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail10/in/A.java
new file mode 100644
index 0000000..e517b90
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail10/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static void m(){

+		A.F= 0;

+	}

+	private static int F;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail10/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail10/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail10/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail13/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail13/in/A.java
new file mode 100644
index 0000000..551ebad
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail13/in/A.java
@@ -0,0 +1,5 @@
+package p;

+public class A{

+	private static int m(){ return 1;};

+	public static int i= m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail13/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail13/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail13/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail15/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail15/in/A.java
new file mode 100644
index 0000000..8dd646c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail15/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static native void m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail15/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail15/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail15/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail17/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail17/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail17/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail17/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail17/in/B.java
new file mode 100644
index 0000000..7f1fd4c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail17/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class X{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail18/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail18/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail18/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail18/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail18/in/B.java
new file mode 100644
index 0000000..7f1fd4c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail18/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class X{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail19/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail19/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail19/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail19/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail19/in/B.java
new file mode 100644
index 0000000..3b0ee3e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail19/in/B.java
@@ -0,0 +1,3 @@
+package p;

+interface B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail2/in/A.java
new file mode 100644
index 0000000..ae575ca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail2/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail2/in/B.java
new file mode 100644
index 0000000..472d4e7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail2/in/B.java
@@ -0,0 +1,4 @@
+package p;

+class B{

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail21/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail21/in/A.java
new file mode 100644
index 0000000..77a7078
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail21/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public interface A{

+	static void m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail21/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail21/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail21/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail24/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail24/in/A.java
new file mode 100644
index 0000000..80582ab
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail24/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public interface A{

+	public void m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail24/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail24/in/B.java
new file mode 100644
index 0000000..3b0ee3e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail24/in/B.java
@@ -0,0 +1,3 @@
+package p;

+interface B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail3/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail3/in/A.java
new file mode 100644
index 0000000..8b596a5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail3/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(int i, int j){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail3/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail3/in/B.java
new file mode 100644
index 0000000..a32ef23
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail3/in/B.java
@@ -0,0 +1,4 @@
+package p;

+class B{

+	void m(int i, int j){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail4/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail4/in/A.java
new file mode 100644
index 0000000..8b596a5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail4/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(int i, int j){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail4/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail4/in/B.java
new file mode 100644
index 0000000..f5203f8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail4/in/B.java
@@ -0,0 +1,4 @@
+package p;

+class B{

+	void m(int i, boolean j){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail5/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail5/in/A.java
new file mode 100644
index 0000000..8b596a5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail5/in/A.java
@@ -0,0 +1,4 @@
+package p;

+public class A{

+	public static void m(int i, int j){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail5/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail5/in/B.java
new file mode 100644
index 0000000..5ad2158
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail5/in/B.java
@@ -0,0 +1,4 @@
+package p;

+class B{

+	int m(int i, boolean j){ return 0;}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail9/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail9/in/A.java
new file mode 100644
index 0000000..c328d05
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail9/in/A.java
@@ -0,0 +1,7 @@
+package p;

+public class A{

+	public static void m(){

+		A.f();

+	}

+	private static void f(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail9/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail9/in/B.java
new file mode 100644
index 0000000..fb99727
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testFail9/in/B.java
@@ -0,0 +1,3 @@
+package p;

+class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/in/B.java
new file mode 100644
index 0000000..21c9d63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/in/T.java
new file mode 100644
index 0000000..4b9a62d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public team class TR

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/out/T.java
new file mode 100644
index 0000000..f919e0a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass1/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T

+{

+    public static void m(){}

+

+	public team class TR

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/in/B.java
new file mode 100644
index 0000000..21c9d63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/in/T.java
new file mode 100644
index 0000000..4b9a62d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public team class TR

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/out/T.java
new file mode 100644
index 0000000..079e35a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToNestedTeamclass2/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T

+{

+    public team class TR

+    {

+

+		public static void m(){}

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/in/B.java
new file mode 100644
index 0000000..21c9d63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/in/T.java
new file mode 100644
index 0000000..ff8d177
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public class R

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/out/T.java
new file mode 100644
index 0000000..60302a0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToRoleclass/out/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T

+{

+    public class R

+    {

+

+		public static void m(){}

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/in/B.java
new file mode 100644
index 0000000..21c9d63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/in/T.java
new file mode 100644
index 0000000..7655e94
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/in/T.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/out/B.java
new file mode 100644
index 0000000..fe7aadc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/out/T.java
new file mode 100644
index 0000000..440ce79
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/MoveStaticMethod/testMoveToTeamclass/out/T.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T

+{

+

+	public static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/TDest.java
new file mode 100644
index 0000000..8234156
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/TDest.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public void rm() {}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/TSource.java
new file mode 100644
index 0000000..0645d16
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/in/TSource.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public void rm() {}

+

+		rm <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/TDest.java
new file mode 100644
index 0000000..e543b40
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/TDest.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public void rm() {}

+

+		rm <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/TSource.java
new file mode 100644
index 0000000..0645d16
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMapping/out/TSource.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public void rm() {}

+

+		rm <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/B.java
new file mode 100644
index 0000000..ef21d31
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public int bm(int i){ return 1; }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/TDest.java
new file mode 100644
index 0000000..b451e69
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/TDest.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public Integer rm(Integer iObj)

+		{

+			return iObj;

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/TSource.java
new file mode 100644
index 0000000..bd20fc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/in/TSource.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public Integer rm(Integer iObj)

+		{

+			return iObj;

+		}

+

+		Integer rm(Integer iObj) <- after int bm(int i) with {

+			iObj <- new Integer(i),

+			result.intValue() -> result 

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/B.java
new file mode 100644
index 0000000..ef21d31
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public int bm(int i){ return 1; }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/TDest.java
new file mode 100644
index 0000000..b38e4a8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/TDest.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public Integer rm(Integer iObj)

+		{

+			return iObj;

+		}

+

+		Integer rm(Integer iObj) <- after int bm(int i) with {

+			iObj <- new Integer(i),

+			result.intValue() -> result 

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/TSource.java
new file mode 100644
index 0000000..bd20fc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCallinMappingParam/out/TSource.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public Integer rm(Integer iObj)

+		{

+			return iObj;

+		}

+

+		Integer rm(Integer iObj) <- after int bm(int i) with {

+			iObj <- new Integer(i),

+			result.intValue() -> result 

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/TDest.java
new file mode 100644
index 0000000..92c311e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/TDest.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public abstract void rm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/TSource.java
new file mode 100644
index 0000000..ffc8dab
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/in/TSource.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public abstract void rm();

+		

+		rm -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/TDest.java
new file mode 100644
index 0000000..2235053
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/TDest.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public abstract void rm();

+

+		rm -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/TSource.java
new file mode 100644
index 0000000..ffc8dab
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMapping/out/TSource.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public abstract void rm();

+		

+		rm -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/B.java
new file mode 100644
index 0000000..ef21d31
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public int bm(int i){ return 1; }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/TDest.java
new file mode 100644
index 0000000..a6d9fec
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/TDest.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/TSource.java
new file mode 100644
index 0000000..251ce3c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/in/TSource.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+

+		Integer rm(Integer iObj) -> int bm(int i) with 

+		{

+			iObj.intValue() -> i,

+			result <- new Integer(result)

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/B.java
new file mode 100644
index 0000000..ef21d31
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public int bm(int i){ return 1; }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/TDest.java
new file mode 100644
index 0000000..fba4251
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/TDest.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+

+		Integer rm(Integer iObj) -> int bm(int i) with 

+		{

+			iObj.intValue() -> i,

+			result <- new Integer(result)

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/TSource.java
new file mode 100644
index 0000000..251ce3c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutMappingParam/out/TSource.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+

+		Integer rm(Integer iObj) -> int bm(int i) with 

+		{

+			iObj.intValue() -> i,

+			result <- new Integer(result)

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/B.java
new file mode 100644
index 0000000..2edab0f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/TDest.java
new file mode 100644
index 0000000..d7803d4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/TDest.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public abstract int rm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/TSource.java
new file mode 100644
index 0000000..e64445e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/in/TSource.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public abstract int rm();

+

+		rm -> get f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/B.java
new file mode 100644
index 0000000..2edab0f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/TDest.java
new file mode 100644
index 0000000..e53bf88
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/TDest.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TDest

+{

+	public class R playedBy B

+	{

+		public abstract int rm();

+

+		rm -> get f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/TSource.java
new file mode 100644
index 0000000..e64445e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteCalloutToFieldMapping/out/TSource.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public abstract int rm();

+

+		rm -> get f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/in/TDest.java
new file mode 100644
index 0000000..8976e7d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/in/TDest.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class TDest

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/in/TSource.java
new file mode 100644
index 0000000..09ae5b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/in/TSource.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class TSource

+{

+	public team class TN

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/out/TDest.java
new file mode 100644
index 0000000..cf5ed6e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/out/TDest.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TDest

+{

+

+	public team class TN

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/out/TSource.java
new file mode 100644
index 0000000..09ae5b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteNestedTeamclass/out/TSource.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class TSource

+{

+	public team class TN

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/TDest.java
new file mode 100644
index 0000000..8976e7d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/TDest.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class TDest

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/TSource.java
new file mode 100644
index 0000000..a3ba217
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/in/TSource.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public void rm(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/B.java
new file mode 100644
index 0000000..98fb71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/TDest.java
new file mode 100644
index 0000000..b3db272
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/TDest.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class TDest

+{

+

+	public class R playedBy B

+	{

+		public void rm(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/TSource.java
new file mode 100644
index 0000000..a3ba217
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteRoleclass/out/TSource.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TSource

+{

+	public class R playedBy B

+	{

+		public void rm(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/in/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/in/TDest.java
new file mode 100644
index 0000000..8976e7d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/in/TDest.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class TDest

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/in/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/in/TSource.java
new file mode 100644
index 0000000..146a10c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/in/TSource.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class TSource

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/out/TDest.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/out/TDest.java
new file mode 100644
index 0000000..1e084b7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/out/TDest.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class TDest

+{

+

+	public team class TSource

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/out/TSource.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/out/TSource.java
new file mode 100644
index 0000000..146a10c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/Paste/testPasteTeamclassIntoTeamclass/out/TSource.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class TSource

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/B1.java
new file mode 100644
index 0000000..d79b924
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/B1.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B1 {

+	public void bm(int x) {

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/B2.java
new file mode 100644
index 0000000..d951e8b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/B2.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B2 extends B1 {

+	public void bm() {

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/T.java
new file mode 100644
index 0000000..e24b08d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase1/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T {

+	public class R playedBy B1 {

+		public void m() {

+		}

+

+		m <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/B1.java
new file mode 100644
index 0000000..d79b924
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/B1.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B1 {

+	public void bm(int x) {

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/B2.java
new file mode 100644
index 0000000..d951e8b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/B2.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B2 extends B1 {

+	public void bm() {

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/T.java
new file mode 100644
index 0000000..6657b7f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInBase2/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	public class R playedBy B1 {

+		public abstract void m();

+

+		m -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole1/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole1/in/T.java
new file mode 100644
index 0000000..52c76b5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole1/in/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T {

+	public class RSuper playedBy B{

+		

+	}

+	

+	public class R1 extends RSuper {

+		public void m(){}

+	}

+	

+	public class R2 extends RSuper {

+		public void m(int x){}

+		m <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole2/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole2/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole2/in/T.java
new file mode 100644
index 0000000..5072a4e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInExplicitRelatedRole2/in/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T {

+	public class RSuper playedBy B{

+		

+	}

+	

+	public class R1 extends RSuper {

+		public void m(){}

+	}

+	

+	public class R2 extends RSuper {

+		public abstract void m(int x);

+		m -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/T1.java
new file mode 100644
index 0000000..6f2d36e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/T1.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T1 extends TSuper {

+	public class R {

+		public void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/T2.java
new file mode 100644
index 0000000..233820e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2 extends TSuper {

+	public class R extends RSuper {

+		public void m(int x){}

+		m <- after bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/TSuper.java
new file mode 100644
index 0000000..00c9acc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole1/in/TSuper.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class TSuper {

+	public class R playedBy B{

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/T1.java
new file mode 100644
index 0000000..6f2d36e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/T1.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T1 extends TSuper {

+	public class R {

+		public void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/T2.java
new file mode 100644
index 0000000..e61af4f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2 extends TSuper {

+	public class R extends RSuper {

+		public abstract void m(int x);

+		m -> bm;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/TSuper.java
new file mode 100644
index 0000000..00c9acc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testAmbiguityInImplicitRelatedRole2/in/TSuper.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class TSuper {

+	public class R playedBy B{

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/T.java
new file mode 100644
index 0000000..d9c12a3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/T.java
@@ -0,0 +1,9 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+		
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/T2.java
new file mode 100644
index 0000000..0bd4cf6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/T2.java
@@ -0,0 +1,9 @@
+package p;
+
+team class T2 extends TSuper{
+	public class R{
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/TSuper.java
new file mode 100644
index 0000000..b8b5ba1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/in/TSuper.java
@@ -0,0 +1,6 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/T.java
new file mode 100644
index 0000000..22b7239
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/T.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/T2.java
new file mode 100644
index 0000000..724d33f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/T2.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T2 extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/TSuper.java
new file mode 100644
index 0000000..dd1e632
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testDeletionOfMatchingMethods/out/TSuper.java
@@ -0,0 +1,9 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T1.java
new file mode 100644
index 0000000..9de693e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1{

+	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T2.java
new file mode 100644
index 0000000..ca5c44d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1 {

+	private final T3 anchor = new T3();

+	

+	private ExternRole<@anchor> extern;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T3.java
new file mode 100644
index 0000000..def7b38
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpAnchoredTypeField/in/T3.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T3{

+	public class ExternRole{

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/B.java
new file mode 100644
index 0000000..c1601d0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B extends BSuper{

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/BSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/BSuper.java
new file mode 100644
index 0000000..bf99dea
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/BSuper.java
@@ -0,0 +1,4 @@
+package p;

+

+public class BSuper{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/T.java
new file mode 100644
index 0000000..9c31323
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T {

+	public class R playedBy B{

+		callin void rm(){}

+		rm <- replace bm;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/B.java
new file mode 100644
index 0000000..41d3178
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/B.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B extends BSuper{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/BSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/BSuper.java
new file mode 100644
index 0000000..42fe2ef
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/BSuper.java
@@ -0,0 +1,7 @@
+package p;

+

+public class BSuper{

+

+	public void bm()

+	{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/T.java
new file mode 100644
index 0000000..9c31323
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpBoundMethod/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T {

+	public class R playedBy B{

+		callin void rm(){}

+		rm <- replace bm;

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinIntoRegularClass/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinIntoRegularClass/in/C.java
new file mode 100644
index 0000000..7676d78
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinIntoRegularClass/in/C.java
@@ -0,0 +1,5 @@
+package p;

+

+public class C {

+	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinIntoRegularClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinIntoRegularClass/in/T.java
new file mode 100644
index 0000000..d3b4737
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinIntoRegularClass/in/T.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T{

+	public class R extends C {

+		callin void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/T.java
new file mode 100644
index 0000000..d9c12a3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/T.java
@@ -0,0 +1,9 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+		
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/TSuper.java
new file mode 100644
index 0000000..b8b5ba1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/in/TSuper.java
@@ -0,0 +1,6 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/T.java
new file mode 100644
index 0000000..22b7239
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/T.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/TSuper.java
new file mode 100644
index 0000000..dd1e632
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCallinMethod/out/TSuper.java
@@ -0,0 +1,9 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/B1.java
new file mode 100644
index 0000000..877e6f3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/B1.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B1 extends B2 {

+ 

+	protected String f;

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/B2.java
new file mode 100644
index 0000000..3c4c699
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/T.java
new file mode 100644
index 0000000..c2347ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/in/T.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T3 extends T1{

+	public class Role playedBy B1{

+		String getF() -> get String f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/B1.java
new file mode 100644
index 0000000..117908c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 extends B2 {

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/B2.java
new file mode 100644
index 0000000..18b5a4b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/B2.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B2 {

+

+	protected String f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/T.java
new file mode 100644
index 0000000..c2347ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpCalloutFieldInBase/out/T.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T3 extends T1{

+	public class Role playedBy B1{

+		String getF() -> get String f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/in/T.java
new file mode 100644
index 0000000..be627ce
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/in/T.java
@@ -0,0 +1,7 @@
+package p;
+
+team class T extends TSuper{
+	public class R {
+		private String f;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/in/TSuper.java
new file mode 100644
index 0000000..860ae4c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/in/TSuper.java
@@ -0,0 +1,6 @@
+package p;
+
+public team class TSuper {
+	public class R {
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/out/T.java
new file mode 100644
index 0000000..d4e7d0d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/out/T.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T extends TSuper{
+	public class R {
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/out/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/out/TSuper.java
new file mode 100644
index 0000000..38dd7bc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpFieldToImplicitSuperclass/out/TSuper.java
@@ -0,0 +1,8 @@
+package p;
+
+public team class TSuper {
+	public class R {
+
+		private String f;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/T.java
new file mode 100644
index 0000000..d9c12a3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/T.java
@@ -0,0 +1,9 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+		
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/TSuper.java
new file mode 100644
index 0000000..b8b5ba1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/in/TSuper.java
@@ -0,0 +1,6 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/T.java
new file mode 100644
index 0000000..22b7239
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/T.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/TSuper.java
new file mode 100644
index 0000000..dd1e632
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPullUpMethodToImplicitSuperclass/out/TSuper.java
@@ -0,0 +1,9 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T1.java
new file mode 100644
index 0000000..69e7b36
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T1.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T1{

+	public class Role{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T2.java
new file mode 100644
index 0000000..7bd3438
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1 {

+	public class Role{

+		private String f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T3.java
new file mode 100644
index 0000000..8f7f692
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpFieldWillBeShadowed/in/T3.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T3 extends T1{

+	public class Role{

+		private int f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/T1.java
new file mode 100644
index 0000000..fedb89b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1 extends TSuper {

+	public class R{

+		public void m(){

+			

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/T2.java
new file mode 100644
index 0000000..4aed654
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends TSuper {

+	public class R{

+		public void m(){

+			

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/TSuper.java
new file mode 100644
index 0000000..c54aa4e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testPulledUpMethodIsOverriddenInImplicitSubRole/in/TSuper.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class TSuper {

+	public class R{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/B.java
new file mode 100644
index 0000000..4fcae97
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B{

+	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/T.java
new file mode 100644
index 0000000..e006f63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T extends TSuper {

+	

+	public void m(B as R b) {}

+

+	public class R playedBy B {}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/TSuper.java
new file mode 100644
index 0000000..a4ac05f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PullUp/testReferencingRoleInDeclaredLifting/in/TSuper.java
@@ -0,0 +1,4 @@
+package p;

+

+public team class TSuper {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/T1.java
new file mode 100644
index 0000000..13fcb0c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/T1.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T1 extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/T2.java
new file mode 100644
index 0000000..dac0b41
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/T2.java
@@ -0,0 +1,4 @@
+package p;
+
+team class T2 extends TSuper{
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/TSuper.java
new file mode 100644
index 0000000..abe901f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testDeclaringTypeHasADirectPhantomSubRole/in/TSuper.java
@@ -0,0 +1,9 @@
+package p;
+
+public team class TSuper {
+	public class R {
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/A.java
new file mode 100644
index 0000000..64d3803
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/A.java
@@ -0,0 +1,5 @@
+package p;

+

+public class A {

+	public void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/T1.java
new file mode 100644
index 0000000..c839026
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/T1.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T1 extends T2 {

+	protected class R extends A {

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/T2.java
new file mode 100644
index 0000000..3d58db4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 {

+	protected class R {

+		public void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/A.java
new file mode 100644
index 0000000..64d3803
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/A.java
@@ -0,0 +1,5 @@
+package p;

+

+public class A {

+	public void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/T1.java
new file mode 100644
index 0000000..671ab7c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1 extends T2 {

+	protected class R extends A {

+

+		public void m()

+		{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/T2.java
new file mode 100644
index 0000000..68496e2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideExplicitInheritedMethod/out/T2.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T2 {

+	protected class R {

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/A.java
new file mode 100644
index 0000000..64d3803
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/A.java
@@ -0,0 +1,5 @@
+package p;

+

+public class A {

+	public void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/T1.java
new file mode 100644
index 0000000..c839026
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/T1.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T1 extends T2 {

+	protected class R extends A {

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/T2.java
new file mode 100644
index 0000000..3d58db4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testOverrideImplicitInheritedMethod/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 {

+	protected class R {

+		public void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/T.java
new file mode 100644
index 0000000..22b7239
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/T.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/TSuper.java
new file mode 100644
index 0000000..456cef5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/in/TSuper.java
@@ -0,0 +1,8 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+
+		private String f;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/T.java
new file mode 100644
index 0000000..d341d7b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/T.java
@@ -0,0 +1,8 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+
+		private String f;
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/TSuper.java
new file mode 100644
index 0000000..b8b5ba1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownFieldToImplicitSubclass/out/TSuper.java
@@ -0,0 +1,6 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/T.java
new file mode 100644
index 0000000..22b7239
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/T.java
@@ -0,0 +1,6 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/TSuper.java
new file mode 100644
index 0000000..dd1e632
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/in/TSuper.java
@@ -0,0 +1,9 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/B.java
new file mode 100644
index 0000000..f36edb5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm() {}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/T.java
new file mode 100644
index 0000000..38f71f1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/T.java
@@ -0,0 +1,9 @@
+package p;
+
+team class T extends TSuper{
+	public class R{
+
+		public void rm()
+		{}
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/TSuper.java
new file mode 100644
index 0000000..b8b5ba1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownMethodToImplicitSubclass/out/TSuper.java
@@ -0,0 +1,6 @@
+package p;
+
+public team class TSuper {
+	public class R playedBy B{
+	}
+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T1.java
new file mode 100644
index 0000000..4982f42
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T1.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T1{

+	private final T3 anchor = new T3();

+	

+	private ExternRole<@anchor> extern;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T2.java
new file mode 100644
index 0000000..ecac922
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2 extends T1 {

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T3.java
new file mode 100644
index 0000000..def7b38
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushDownTypeAnchorInstance/in/T3.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T3{

+	public class ExternRole{

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/B1.java
new file mode 100644
index 0000000..a79da52
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 {

+	public boolean b = true;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/B2.java
new file mode 100644
index 0000000..2b2f14c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 extends B1 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/T.java
new file mode 100644
index 0000000..66c2409
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard1/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	protected class R playedBy B1 {

+		public void m(){}

+		m <- after toString base when(base.b);

+	}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/B1.java
new file mode 100644
index 0000000..a79da52
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 {

+	public boolean b = true;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/B2.java
new file mode 100644
index 0000000..2b2f14c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 extends B1 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/T.java
new file mode 100644
index 0000000..30fa141
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard2/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	protected class R playedBy B1 {

+		public void m() base when(base.b) {}

+		m <- after toString;

+	}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/B1.java
new file mode 100644
index 0000000..a79da52
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 {

+	public boolean b = true;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/B2.java
new file mode 100644
index 0000000..2b2f14c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 extends B1 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/T.java
new file mode 100644
index 0000000..daefc5e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInBaseGuard3/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	protected class R playedBy B2 base when(base.b){

+		public void m(){}

+		m <- after toString;

+	}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping1/in/B.java
new file mode 100644
index 0000000..492c79d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void m(int i);

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping1/in/T.java
new file mode 100644
index 0000000..3fb7c9e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping1/in/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public final int f = 0;

+

+		void callOut() -> void m(int i) with {

+			f -> i 

+		}

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping2/in/B.java
new file mode 100644
index 0000000..6fe7885
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping2/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public Integer i;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping2/in/T.java
new file mode 100644
index 0000000..8d22c8d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping2/in/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public final int f = 0;

+

+		int getI() -> get Integer i with {

+			result <- f 

+		}

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping3/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping3/in/B.java
new file mode 100644
index 0000000..2a744f5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping3/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public int bm(){return 0;}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping3/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping3/in/T.java
new file mode 100644
index 0000000..3714569
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInParameterMapping3/in/T.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public final int f = 0;

+

+		callin int rm(){return 0;}

+		

+		int rm() <- replace int bm() with {

+			f -> result 

+		}

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard1/in/B.java
new file mode 100644
index 0000000..0f69e1d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard1/in/B.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard1/in/T.java
new file mode 100644
index 0000000..f708c50
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard1/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public boolean b = true;

+		public void m(){}

+		m <- after toString when(b);

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard2/in/B.java
new file mode 100644
index 0000000..250a40f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard2/in/B.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard2/in/T.java
new file mode 100644
index 0000000..646561a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldIsReferencedInRegularGuard2/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public boolean b = true;

+		public void m() when(b){}

+		m <- after toString;

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/B1.java
new file mode 100644
index 0000000..bbf40e8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 {

+	private String f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/B2.java
new file mode 100644
index 0000000..c6d6e61
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/B2.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B2 extends B1 {

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/T.java
new file mode 100644
index 0000000..164cadf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldReferencedInCalloutToField/in/T.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T {

+	protected class Role playedBy B1 {

+		String getF() -> get String f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/B.java
new file mode 100644
index 0000000..e53a3d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	private int f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/T1.java
new file mode 100644
index 0000000..d8fe238
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/T1.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T1 {

+	protected class Role {

+		private String f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/T2.java
new file mode 100644
index 0000000..2728e0d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownFieldWouldShadowAnInheritedField/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1{

+	protected class Role extends B {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/B1.java
new file mode 100644
index 0000000..b71d3ce
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/B1.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B1 {

+	public boolean b() {

+		return true;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/B2.java
new file mode 100644
index 0000000..2b2f14c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 extends B1 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/T.java
new file mode 100644
index 0000000..8a903bb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard1/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	protected class R playedBy B1 {

+		public void m(){}

+		m <- after toString base when(base.b());

+	}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/B1.java
new file mode 100644
index 0000000..b71d3ce
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/B1.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B1 {

+	public boolean b() {

+		return true;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/B2.java
new file mode 100644
index 0000000..2b2f14c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 extends B1 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/T.java
new file mode 100644
index 0000000..585c6a5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard2/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	protected class R playedBy B1 {

+		public void m() base when(base.b()) {}

+		m <- after toString;

+	}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/B1.java
new file mode 100644
index 0000000..b71d3ce
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/B1.java
@@ -0,0 +1,7 @@
+package p;

+

+public class B1 {

+	public boolean b() {

+		return true;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/B2.java
new file mode 100644
index 0000000..2b2f14c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/B2.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B2 extends B1 {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/T.java
new file mode 100644
index 0000000..9809f6f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInBaseGuard3/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T {

+	protected class R playedBy B1 base when(base.b()){

+		public void m(){}

+		m <- after toString;

+	}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping1/in/B.java
new file mode 100644
index 0000000..492c79d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping1/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void m(int i);

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping1/in/T.java
new file mode 100644
index 0000000..461dd68
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping1/in/T.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public int f(){

+			return 0;

+		}

+

+		void callOut() -> void m(int i) with {

+			f() -> i 

+		}

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping2/in/B.java
new file mode 100644
index 0000000..6fe7885
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping2/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public Integer i;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping2/in/T.java
new file mode 100644
index 0000000..f9ccd1c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping2/in/T.java
@@ -0,0 +1,17 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public int f(){

+			return 0;

+		}

+

+		int getI() -> get Integer i with {

+			result <- f() 

+		}

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping3/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping3/in/B.java
new file mode 100644
index 0000000..2a744f5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping3/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public int bm(){return 0;}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping3/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping3/in/T.java
new file mode 100644
index 0000000..6a3c262
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInParameterMapping3/in/T.java
@@ -0,0 +1,19 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public int f(){

+			return 0;

+		}

+

+		callin int rm(){return 0;}

+		

+		int rm() <- replace int bm() with {

+			f() -> result 

+		}

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard1/in/B.java
new file mode 100644
index 0000000..0f69e1d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard1/in/B.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B {

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard1/in/T.java
new file mode 100644
index 0000000..981db5e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard1/in/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public boolean b(){

+			return true;

+		}

+		public void m(){}

+		m <- after toString when(b());

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard2/in/B.java
new file mode 100644
index 0000000..250a40f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard2/in/B.java
@@ -0,0 +1,4 @@
+package p;

+

+public class B{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard2/in/T.java
new file mode 100644
index 0000000..c65cd96
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodIsReferencedInRegularGuard2/in/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T {

+	protected class R1 playedBy B {

+		public boolean b() {

+			return true;

+		}

+		public void m() when(b()){}

+		m <- after toString;

+	}

+	

+	protected class R2 extends R1 {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/B1.java
new file mode 100644
index 0000000..61d3a1c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 {

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/B2.java
new file mode 100644
index 0000000..c6d6e61
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/B2.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B2 extends B1 {

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/T.java
new file mode 100644
index 0000000..b2c5cb2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding1/in/T.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T {

+	protected class Role playedBy B1 {

+		void rm() -> void bm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/B1.java
new file mode 100644
index 0000000..61d3a1c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1 {

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/B2.java
new file mode 100644
index 0000000..c6d6e61
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/B2.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B2 extends B1 {

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/T.java
new file mode 100644
index 0000000..ed58cc9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding2/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T {

+	protected class Role playedBy B1 {

+		public void rm(){}

+		void rm() <- after void bm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/B.java
new file mode 100644
index 0000000..f4fc2b8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B {

+	public void bm(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/T1.java
new file mode 100644
index 0000000..af83cb6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/T1.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T1 {

+	protected class Role playedBy B {

+		

+		public void rm(){}

+		

+		void rm() <- after void bm();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/T2.java
new file mode 100644
index 0000000..e9fddf0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/PushDown/testPushedDownMethodReferencedInMethodBinding3/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1{

+	protected class Role playedBy B {

+		

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInExplicitlyInheritedRoleClass/in/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInExplicitlyInheritedRoleClass/in/I.java
new file mode 100644
index 0000000..4c127dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInExplicitlyInheritedRoleClass/in/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void m();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInExplicitlyInheritedRoleClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInExplicitlyInheritedRoleClass/in/T.java
new file mode 100644
index 0000000..b070ca9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInExplicitlyInheritedRoleClass/in/T.java
@@ -0,0 +1,15 @@
+package p;

+//renaming I.m to k

+public team class T

+{

+    public class R1 implements I

+    {

+        public void m(){}

+    }

+    

+    public class R2 extends R1

+    {

+        public void m(){}

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/I.java
new file mode 100644
index 0000000..4c127dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void m();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/T1.java
new file mode 100644
index 0000000..6949bc4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T1

+{

+    public class R implements I

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/T2.java
new file mode 100644
index 0000000..7a89334
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInImplicitlyInheritedRoleClass/in/T2.java
@@ -0,0 +1,10 @@
+package p;

+//renaming I.m to k

+public team class T2 extends T1

+{

+  public class R

+  {

+      public void m(){}

+      public void k(){}

+  }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInRoleClass/in/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInRoleClass/in/I.java
new file mode 100644
index 0000000..4c127dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInRoleClass/in/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void m();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInRoleClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInRoleClass/in/T.java
new file mode 100644
index 0000000..bddfe21
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testMethodAlreadyExistsInRoleClass/in/T.java
@@ -0,0 +1,10 @@
+package p;

+//renaming I.m to k

+public team class T

+{

+    public class R implements I

+    {

+        public void m(){}

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/in/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/in/I.java
new file mode 100644
index 0000000..4c127dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/in/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void m();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/in/T.java
new file mode 100644
index 0000000..ea205aa
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/in/T.java
@@ -0,0 +1,14 @@
+package p;

+//renaming I.m to k

+public team class T

+{

+    public class R1 implements I

+    {

+        public void m(){}

+    }

+    

+    public class R2 extends R1

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/out/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/out/I.java
new file mode 100644
index 0000000..220163e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/out/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void k();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/out/T.java
new file mode 100644
index 0000000..efd31fa
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInExplicitlyInheritedRoleClass/out/T.java
@@ -0,0 +1,14 @@
+package p;

+//renaming I.m to k

+public team class T

+{

+    public class R1 implements I

+    {

+        public void k(){}

+    }

+    

+    public class R2 extends R1

+    {

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/I.java
new file mode 100644
index 0000000..4c127dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void m();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/T1.java
new file mode 100644
index 0000000..6949bc4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T1

+{

+    public class R implements I

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/T2.java
new file mode 100644
index 0000000..632ee7d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T2 extends T1

+{

+  public class R

+  {

+      public void m(){}

+  }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/I.java
new file mode 100644
index 0000000..220163e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void k();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/T1.java
new file mode 100644
index 0000000..ed5b8af
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T1

+{

+    public class R implements I

+    {

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/T2.java
new file mode 100644
index 0000000..ccde5b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInImplicitlyInheritedRoleClass/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T2 extends T1

+{

+  public class R

+  {

+      public void k(){}

+  }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/in/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/in/I.java
new file mode 100644
index 0000000..4c127dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/in/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void m();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/in/T.java
new file mode 100644
index 0000000..b5db740
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/in/T.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T

+{

+    public class R implements I

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/out/I.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/out/I.java
new file mode 100644
index 0000000..220163e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/out/I.java
@@ -0,0 +1,6 @@
+package p;

+//renaming I.m to k

+public interface I

+{

+    public void k();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/out/T.java
new file mode 100644
index 0000000..8581638
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameMethodInInterface/testUpdateImplementationInRoleClass/out/T.java
@@ -0,0 +1,9 @@
+package p;

+//renaming I.m to k

+public team class T

+{

+    public class R implements I

+    {

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInRoleclass/in/T.java
new file mode 100644
index 0000000..33fb677
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInRoleclass/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private String f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInRoleclass/out/T.java
new file mode 100644
index 0000000..928fa60
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInRoleclass/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private String g;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInTeamclass/in/T.java
new file mode 100644
index 0000000..9748768
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInTeamclass/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T

+{

+	private String f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInTeamclass/out/T.java
new file mode 100644
index 0000000..1829ae4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameFieldInTeamclass/out/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T

+{

+	private String g;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter1/in/T.java
new file mode 100644
index 0000000..88ecaa9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter1/in/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+	private int number;

+

+	public int getNumber()

+	{

+		return number;

+	}

+

+	public void setNumber(int idx)

+	{

+		number = idx;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter1/out/T.java
new file mode 100644
index 0000000..73252f1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter1/out/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+	private int index;

+

+	public int getIndex()

+	{

+		return index;

+	}

+

+	public void setIndex(int idx)

+	{

+		index = idx;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter2/in/T.java
new file mode 100644
index 0000000..b9d2a09
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter2/in/T.java
@@ -0,0 +1,19 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private int number;

+

+		public int getNumber()

+		{

+			return number;

+		}

+

+		public void setNumber(int idx)

+		{

+			number = idx;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter2/out/T.java
new file mode 100644
index 0000000..3c0acc1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter2/out/T.java
@@ -0,0 +1,19 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private int index;

+

+		public int getIndex()

+		{

+			return index;

+		}

+

+		public void setIndex(int idx)

+		{

+			index = idx;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter3/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter3/in/T1.java
new file mode 100644
index 0000000..d176433
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter3/in/T1.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T1

+{

+	private int number;

+

+	public int getNumber()

+	{

+		return number;

+	}

+

+	public void setNumber(int idx)

+	{

+		number = idx;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter3/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter3/in/T2.java
new file mode 100644
index 0000000..6952577
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter3/in/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2 extends T1

+{

+	public int getNumber()

+	{

+		return 0;

+	}

+

+	public void setNumber(int idx){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter4/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter4/in/T1.java
new file mode 100644
index 0000000..02a9226
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter4/in/T1.java
@@ -0,0 +1,19 @@
+package p;

+

+public team class T1

+{

+	public class R

+	{

+		private int number;

+

+		public int getNumber()

+		{

+			return number;

+		}

+

+		public void setNumber(int idx)

+		{

+			number = idx;    

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter4/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter4/in/T2.java
new file mode 100644
index 0000000..2121cdb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testRenameGetterAndSetter4/in/T2.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T2 extends T1

+{

+	public class R

+	{

+		public int getNumber()

+		{

+			return 0;

+		}

+

+		public void setNumber(int idx){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/in/B.java
new file mode 100644
index 0000000..62bcc68
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/in/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/in/T.java
new file mode 100644
index 0000000..1a2e7f8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/in/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T

+{

+    private String f;

+    

+    public void m(B as R r)

+    {

+        f = "Hello";

+    }

+    

+    public class R playedBy B

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/out/B.java
new file mode 100644
index 0000000..62bcc68
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/out/B.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/out/T.java
new file mode 100644
index 0000000..1e34cad
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInLiftingMethod/out/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T

+{

+    private String g;

+    

+    public void m(B as R r)

+    {

+        g = "Hello";

+    }

+    

+    public class R playedBy B

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass1/in/T.java
new file mode 100644
index 0000000..0522eca
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass1/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private char[] name;

+		

+		public String getName()

+		{

+		    return name.toString();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass1/out/T.java
new file mode 100644
index 0000000..466c18b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass1/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private char[] newName;

+		

+		public String getNewName()

+		{

+		    return newName.toString();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass2/in/T.java
new file mode 100644
index 0000000..5dacf56
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass2/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private String name;

+		

+		public void setName(String str)

+		{

+		    name = str;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass2/out/T.java
new file mode 100644
index 0000000..57c1f46
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass2/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private String newName;

+		

+		public void setNewName(String str)

+		{

+		    newName = str;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass3/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass3/in/T.java
new file mode 100644
index 0000000..3f929b0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass3/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private String name;

+		

+		callin void setName(String str)

+		{

+		    name = str;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass3/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass3/out/T.java
new file mode 100644
index 0000000..cab0723
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInRoleclass3/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private String newName;

+		

+		callin void setNewName(String str)

+		{

+		    newName = str;

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInTeamMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInTeamMethod/in/T.java
new file mode 100644
index 0000000..37f5c5a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInTeamMethod/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    private String f;

+    

+    public void m()

+    {

+        f = "Hello";

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInTeamMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInTeamMethod/out/T.java
new file mode 100644
index 0000000..75a2d87
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateFieldReferenceInTeamMethod/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    private String g;

+    

+    public void m()

+    {

+        g = "Hello";

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/in/B.java
new file mode 100644
index 0000000..df40b06
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private String f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/in/T.java
new file mode 100644
index 0000000..da7224b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract String getName();

+

+		getName -> get f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/out/B.java
new file mode 100644
index 0000000..e1d2c4d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private String g;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/out/T.java
new file mode 100644
index 0000000..785d176
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField1/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract String getName();

+

+		getName -> get g;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/B1.java
new file mode 100644
index 0000000..7fce332
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/B1.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B1

+{

+	private String f;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/B2.java
new file mode 100644
index 0000000..cf2ecb1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/B2.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B2 extends B1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/T.java
new file mode 100644
index 0000000..3b370a4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B2

+	{

+		public abstract String getName();

+

+		getName -> get f;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/B1.java
new file mode 100644
index 0000000..412ce6e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/B1.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B1

+{

+	private String g;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/B2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/B2.java
new file mode 100644
index 0000000..cf2ecb1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/B2.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B2 extends B1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/T.java
new file mode 100644
index 0000000..409b1b0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField2/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B2

+	{

+		public abstract String getName();

+

+		getName -> get g;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/in/B.java
new file mode 100644
index 0000000..242e6e3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private String name;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/in/T.java
new file mode 100644
index 0000000..3d814cd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		getName -> get name;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/out/B.java
new file mode 100644
index 0000000..0177402
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private String surname;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/out/T.java
new file mode 100644
index 0000000..1f3cc52
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField3/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		getName -> get surname;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/in/B.java
new file mode 100644
index 0000000..242e6e3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private String name;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/in/T.java
new file mode 100644
index 0000000..6a50113
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract void setName(String str);

+

+		void setName(String str) -> set String name;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/out/B.java
new file mode 100644
index 0000000..0177402
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+	private String surname;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/out/T.java
new file mode 100644
index 0000000..fe87aba
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateReferenceInCalloutToField4/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		public abstract void setName(String str);

+

+		void setName(String str) -> set String surname;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam1/in/T.java
new file mode 100644
index 0000000..e07f570
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam1/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int number;

+    

+    public team class TR

+    {

+        public void m()

+        {

+            number = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam1/out/T.java
new file mode 100644
index 0000000..afcbc9c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam1/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int amount;

+    

+    public team class TR

+    {

+        public void m()

+        {

+            amount = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam2/in/T.java
new file mode 100644
index 0000000..272f021
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam2/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int number;

+    

+    public team class TR

+    {

+        public void m()

+        {

+            T.this.number = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam2/out/T.java
new file mode 100644
index 0000000..7e71cac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInNestedTeam2/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int amount;

+    

+    public team class TR

+    {

+        public void m()

+        {

+            T.this.amount = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass1/in/T.java
new file mode 100644
index 0000000..01893c4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass1/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int number;

+    

+    public class R

+    {

+        public void m()

+        {

+            number = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass1/out/T.java
new file mode 100644
index 0000000..0826e57
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass1/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int amount;

+    

+    public class R

+    {

+        public void m()

+        {

+            amount = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass2/in/T.java
new file mode 100644
index 0000000..825d364
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass2/in/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int number;

+    

+    public class R

+    {

+        public void m()

+        {

+            T.this.number = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass2/out/T.java
new file mode 100644
index 0000000..0f97b7b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateField/testUpdateTeamFieldReferenceInRoleclass2/out/T.java
@@ -0,0 +1,14 @@
+package p;

+

+public team class T

+{

+    private int amount;

+    

+    public class R

+    {

+        public void m()

+        {

+            T.this.amount = 2;

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test0/in/A.java
new file mode 100644
index 0000000..f5a86fb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test0/in/A.java
@@ -0,0 +1,10 @@
+package p;

+//renaming A.m to k

+class A {

+	private void m(){}

+	class B{

+		void f(){

+			m();

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test0/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test0/out/A.java
new file mode 100644
index 0000000..2525d26
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test0/out/A.java
@@ -0,0 +1,10 @@
+package p;

+//renaming A.m to k

+class A {

+	private void k(){}

+	class B{

+		void f(){

+			k();

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test10/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test10/in/A.java
new file mode 100644
index 0000000..91d92e3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test10/in/A.java
@@ -0,0 +1,8 @@
+package p;

+//renaming A.m to k

+class A {

+	private void m(){}

+}

+class B {

+	void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test10/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test10/out/A.java
new file mode 100644
index 0000000..3a8c32b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test10/out/A.java
@@ -0,0 +1,8 @@
+package p;

+//renaming A.m to k

+class A {

+	private void k(){}

+}

+class B {

+	void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test11/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test11/in/A.java
new file mode 100644
index 0000000..185e899
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test11/in/A.java
@@ -0,0 +1,8 @@
+package p;

+//renaming A.m to k

+class A {

+	private void m(){}

+}

+class B extends A{

+	void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test11/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test11/out/A.java
new file mode 100644
index 0000000..5d22a3e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test11/out/A.java
@@ -0,0 +1,8 @@
+package p;

+//renaming A.m to k

+class A {

+	private void k(){}

+}

+class B extends A{

+	void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test12/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test12/in/A.java
new file mode 100644
index 0000000..ef938ec
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test12/in/A.java
@@ -0,0 +1,8 @@
+package p;

+//renaming A.m to k

+class A {

+	private void m(){}

+}

+class B extends A{

+	public void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test12/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test12/out/A.java
new file mode 100644
index 0000000..8de5b58
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test12/out/A.java
@@ -0,0 +1,8 @@
+package p;

+//renaming A.m to k

+class A {

+	private void k(){}

+}

+class B extends A{

+	public void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test13/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test13/in/A.java
new file mode 100644
index 0000000..46a7f2f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test13/in/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class B{

+	private void m(){

+	}

+	void f(){

+		m();

+	}

+}

+class A extends B{

+	private void m(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test13/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test13/out/A.java
new file mode 100644
index 0000000..80f0aee
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test13/out/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class B{

+	private void m(){

+	}

+	void f(){

+		m();

+	}

+}

+class A extends B{

+	private void k(){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test14/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test14/in/A.java
new file mode 100644
index 0000000..bc198ba
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test14/in/A.java
@@ -0,0 +1,16 @@
+package p;

+//renaming A.m to k

+class B{

+	private void k(){

+	}

+	void f(){

+		k();

+	}

+}

+class A extends B{

+	private void m(){

+	}

+	void f(){

+		m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test14/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test14/out/A.java
new file mode 100644
index 0000000..150655d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test14/out/A.java
@@ -0,0 +1,16 @@
+package p;

+//renaming A.m to k

+class B{

+	private void k(){

+	}

+	void f(){

+		k();

+	}

+}

+class A extends B{

+	private void k(){

+	}

+	void f(){

+		k();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test15/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test15/in/A.java
new file mode 100644
index 0000000..51876d3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test15/in/A.java
@@ -0,0 +1,7 @@
+package p;

+//renaming A.m to k

+class A{

+	private int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test15/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test15/out/A.java
new file mode 100644
index 0000000..b50c699
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test15/out/A.java
@@ -0,0 +1,7 @@
+package p;

+//renaming A.m to k

+class A{

+	private int k(int m){

+		return k(k(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test16/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test16/in/A.java
new file mode 100644
index 0000000..1422b24
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test16/in/A.java
@@ -0,0 +1,7 @@
+package p;

+//renaming A.m to fred

+class A{

+	private int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test16/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test16/out/A.java
new file mode 100644
index 0000000..8bdb105
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test16/out/A.java
@@ -0,0 +1,7 @@
+package p;

+//renaming A.m to fred

+class A{

+	private int fred(int m){

+		return fred(fred(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test17/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test17/in/A.java
new file mode 100644
index 0000000..6e1e39c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test17/in/A.java
@@ -0,0 +1,8 @@
+//renaming A.m to kk

+package p;

+public class A {

+	private void m(int m){}

+}

+class B extends A{

+	void m(boolean m){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test17/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test17/out/A.java
new file mode 100644
index 0000000..9ffc430
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test17/out/A.java
@@ -0,0 +1,8 @@
+//renaming A.m to kk

+package p;

+public class A {

+	private void kk(int m){}

+}

+class B extends A{

+	void m(boolean m){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/in/A.java
new file mode 100644
index 0000000..58f2af8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/in/A.java
@@ -0,0 +1,11 @@
+//renaming B.m to kk

+package p;

+class B {

+	private void m(int m) {

+	}

+

+}

+public class A extends B {

+	void m(int m) {

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/in/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/in/C.java
new file mode 100644
index 0000000..953cf20
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/in/C.java
@@ -0,0 +1,6 @@
+package p;

+class C{

+	void k(){

+		new A().m(4);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/out/A.java
new file mode 100644
index 0000000..8879b26
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/out/A.java
@@ -0,0 +1,11 @@
+//renaming B.m to kk

+package p;

+class B {

+	private void kk(int m) {

+	}

+

+}

+public class A extends B {

+	void m(int m) {

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/out/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/out/C.java
new file mode 100644
index 0000000..953cf20
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test18/out/C.java
@@ -0,0 +1,6 @@
+package p;

+class C{

+	void k(){

+		new A().m(4);

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test2/in/A.java
new file mode 100644
index 0000000..52935d2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test2/in/A.java
@@ -0,0 +1,14 @@
+//renaming A.m to fred

+package p;

+public class A{

+	private void m() {

+	}

+	void k(){

+		A a= new A();

+		a

+		.

+		m ();

+	}

+	

+}

+

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test2/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test2/out/A.java
new file mode 100644
index 0000000..ffc0bb4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test2/out/A.java
@@ -0,0 +1,14 @@
+//renaming A.m to fred

+package p;

+public class A{

+	private void fred() {

+	}

+	void k(){

+		A a= new A();

+		a

+		.

+		fred ();

+	}

+	

+}

+

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test20/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test20/in/A.java
new file mode 100644
index 0000000..a1272c8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test20/in/A.java
@@ -0,0 +1,23 @@
+//renaming A.m to fred

+package p;

+public class A{

+	private int m(int m) {

+		return m	(	m	)	;

+	}

+		void k(){

+		A a= new A();

+		a

+	.

+		m 

+			(

+			a

+				.

+	m	

+				(

+					6

+			)	

+			

+		);

+	}

+	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test20/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test20/out/A.java
new file mode 100644
index 0000000..cb916b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test20/out/A.java
@@ -0,0 +1,23 @@
+//renaming A.m to fred

+package p;

+public class A{

+	private int fred(int m) {

+		return fred	(	m	)	;

+	}

+		void k(){

+		A a= new A();

+		a

+	.

+		fred 

+			(

+			a

+				.

+	fred	

+				(

+					6

+			)	

+			

+		);

+	}

+	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test23/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test23/in/A.java
new file mode 100644
index 0000000..1d915c0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test23/in/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class A{

+	private void m(){

+	}

+}

+class test{

+	void m(){

+		class X extends A{

+			void m(){

+		}

+	}

+}}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test23/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test23/out/A.java
new file mode 100644
index 0000000..d9b9c85
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test23/out/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class A{

+	private void k(){

+	}

+}

+class test{

+	void m(){

+		class X extends A{

+			void m(){

+		}

+	}

+}}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test24/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test24/in/A.java
new file mode 100644
index 0000000..84e0c57
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test24/in/A.java
@@ -0,0 +1,10 @@
+package p;

+//renaming A.m to k

+class A{

+	private void m(String s){

+	}

+}

+class B extends A{

+	void m(java.lang.String s){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test24/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test24/out/A.java
new file mode 100644
index 0000000..4cba518
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test24/out/A.java
@@ -0,0 +1,10 @@
+package p;

+//renaming A.m to k

+class A{

+	private void k(String s){

+	}

+}

+class B extends A{

+	void m(java.lang.String s){

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test25/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test25/in/A.java
new file mode 100644
index 0000000..8e8ebcd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test25/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//renaming A.m to k

+class A{

+	private void m(String[] s){

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test25/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test25/out/A.java
new file mode 100644
index 0000000..770577a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test25/out/A.java
@@ -0,0 +1,6 @@
+package p;

+//renaming A.m to k

+class A{

+	private void k(String[] s){

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test26/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test26/in/A.java
new file mode 100644
index 0000000..c2110dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test26/in/A.java
@@ -0,0 +1,8 @@
+//renaming A.m to k 

+package p;

+

+class A{

+	private void m(){

+		this.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test26/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test26/out/A.java
new file mode 100644
index 0000000..fea8ee1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test26/out/A.java
@@ -0,0 +1,8 @@
+//renaming A.m to k 

+package p;

+

+class A{

+	private void k(){

+		this.k();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test27/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test27/in/A.java
new file mode 100644
index 0000000..1cd847b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test27/in/A.java
@@ -0,0 +1,9 @@
+//no ref update

+//renaming A.m to k 

+package p;

+

+class A{

+	private void m(){

+		this.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test27/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test27/out/A.java
new file mode 100644
index 0000000..e290855
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/test27/out/A.java
@@ -0,0 +1,9 @@
+//no ref update

+//renaming A.m to k 

+package p;

+

+class A{

+	private void k(){

+		this.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testAnon0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testAnon0/in/A.java
new file mode 100644
index 0000000..0212d97
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testAnon0/in/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+public class A {

+	private void m(){}

+}

+class B{

+	void f(){

+		A a= new A(){

+			void m(){

+			}

+		};

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testAnon0/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testAnon0/out/A.java
new file mode 100644
index 0000000..e8c06c7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testAnon0/out/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+public class A {

+	private void k(){}

+}

+class B{

+	void f(){

+		A a= new A(){

+			void m(){

+			}

+		};

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail0/in/A.java
new file mode 100644
index 0000000..11ae0a2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail0/in/A.java
@@ -0,0 +1,5 @@
+package p;

+//can't rename native methods

+class A{

+ 	private native void m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail1/in/A.java
new file mode 100644
index 0000000..dacef1c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail1/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//can't rename m to k

+class A{

+ 	private void m(){}

+ 	private void k(){}	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail2/in/A.java
new file mode 100644
index 0000000..f6513ab
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail2/in/A.java
@@ -0,0 +1,20 @@
+//can't rename A.m to k

+package p;

+

+class X {

+	void k(){

+	}

+}

+class A {

+	private void m(){

+		System.out.println("a");

+	}

+	class B extends X{

+		void f(){

+			m();

+		}

+		public void foo() {

+			

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail5/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail5/in/A.java
new file mode 100644
index 0000000..b847a20
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testFail5/in/A.java
@@ -0,0 +1,10 @@
+package p;

+

+public class A {

+	private void m(){}

+	class B{

+		void k(){

+			m();

+		}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testPrivateMethodInTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testPrivateMethodInTeamclass/in/T.java
new file mode 100644
index 0000000..0c29cf4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testPrivateMethodInTeamclass/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T

+{

+	private void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testPrivateMethodInTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testPrivateMethodInTeamclass/out/T.java
new file mode 100644
index 0000000..7f83f62
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testPrivateMethodInTeamclass/out/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T

+{

+	private void k(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation1/in/T.java
new file mode 100644
index 0000000..8a993b6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation1/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	private void m()

+	{

+	    this.m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation1/out/T.java
new file mode 100644
index 0000000..80ca4b4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation1/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	private void k()

+	{

+	    this.k();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/in/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/in/B1.java
new file mode 100644
index 0000000..b6178b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/in/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/in/T.java
new file mode 100644
index 0000000..60ac71e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/in/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T

+{

+    private void m1(){}

+    

+	public void m2(B1 as R1 r1)

+	{

+	    m1();

+	}

+	

+	public class R1 playedBy B1

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/out/B1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/out/B1.java
new file mode 100644
index 0000000..b6178b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/out/B1.java
@@ -0,0 +1,5 @@
+package p;

+

+public class B1

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/out/T.java
new file mode 100644
index 0000000..16a2b3a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdatePrivateTeamMethodInvocation2/out/T.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T

+{

+    private void k1(){}

+    

+	public void m2(B1 as R1 r1)

+	{

+	    k1();

+	}

+	

+	public class R1 playedBy B1

+	{

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/in/B.java
new file mode 100644
index 0000000..e46dda5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/in/T.java
new file mode 100644
index 0000000..96016df
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/out/B.java
new file mode 100644
index 0000000..704b441
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/out/T.java
new file mode 100644
index 0000000..c0aabb0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding1/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/in/B.java
new file mode 100644
index 0000000..e46dda5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/in/T.java
new file mode 100644
index 0000000..af16ffa
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        void rm() <- after void m();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/out/B.java
new file mode 100644
index 0000000..704b441
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/out/T.java
new file mode 100644
index 0000000..b3200f1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCallinBinding2/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        void rm() <- after void k();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/in/B.java
new file mode 100644
index 0000000..e46dda5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/in/T.java
new file mode 100644
index 0000000..8d8c204
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/out/B.java
new file mode 100644
index 0000000..704b441
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/out/T.java
new file mode 100644
index 0000000..2891ccd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding1/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/in/B.java
new file mode 100644
index 0000000..60df647
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/in/B.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private static final int COUNT = 10;

+    

+    private int getAmount()

+    {

+        return COUNT;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/in/T.java
new file mode 100644
index 0000000..9056d5e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/in/T.java
@@ -0,0 +1,10 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public abstract int getAmount();

+        int getAmount() -> int getAmount();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/out/B.java
new file mode 100644
index 0000000..e686a9a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/out/B.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private static final int COUNT = 10;

+    

+    private int getQuantity()

+    {

+        return COUNT;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/out/T.java
new file mode 100644
index 0000000..35e4ed4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenamePrivateMethod/testUpdateReferenceInCalloutBinding2/out/T.java
@@ -0,0 +1,10 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public abstract int getAmount();

+        int getAmount() -> int getQuantity();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test0/in/A.java
new file mode 100644
index 0000000..c8d5f83
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test0/in/A.java
@@ -0,0 +1,4 @@
+package p;

+class A{

+	static void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test0/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test0/out/A.java
new file mode 100644
index 0000000..eaf98e0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test0/out/A.java
@@ -0,0 +1,4 @@
+package p;

+class A{

+	static void k(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test1/in/A.java
new file mode 100644
index 0000000..dafccd1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test1/in/A.java
@@ -0,0 +1,18 @@
+package p;

+class A{

+	static void m(){

+	}

+	void f(){

+		m();

+	}

+	static int fred(){

+		m();

+		return 0;

+	}

+}

+class B{

+	static void m(){

+		A.m();

+		new A().m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test1/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test1/out/A.java
new file mode 100644
index 0000000..bb3ff2f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test1/out/A.java
@@ -0,0 +1,18 @@
+package p;

+class A{

+	static void k(){

+	}

+	void f(){

+		k();

+	}

+	static int fred(){

+		k();

+		return 0;

+	}

+}

+class B{

+	static void m(){

+		A.k();

+		new A().k();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/in/A.java
new file mode 100644
index 0000000..7606820
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/in/A.java
@@ -0,0 +1,8 @@
+package p;

+public class A {

+

+	public static void method() {

+		System.out.println("TestA.method");

+		B.method();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/in/B.java
new file mode 100644
index 0000000..53b813e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/in/B.java
@@ -0,0 +1,7 @@
+package p;

+public class B {

+

+	public static void method() {

+		System.out.println("TestB.method");

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/out/A.java
new file mode 100644
index 0000000..be8a1b8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/out/A.java
@@ -0,0 +1,8 @@
+package p;

+public class A {

+

+	public static void method() {

+		System.out.println("TestA.method");

+		B.newmethod();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/out/B.java
new file mode 100644
index 0000000..eeb5d39
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test10/out/B.java
@@ -0,0 +1,7 @@
+package p;

+public class B {

+

+	public static void newmethod() {

+		System.out.println("TestB.method");

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/in/A.java
new file mode 100644
index 0000000..992f880
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/in/A.java
@@ -0,0 +1,8 @@
+package a;

+

+public class A

+{

+   public static void method2() //<--- refactor rename this method

+   {

+   }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/in/B.java
new file mode 100644
index 0000000..e81c81e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/in/B.java
@@ -0,0 +1,19 @@
+package b;

+

+import a.A;

+

+public class B

+{

+   I i = new I()

+   {

+	  public void method()

+	  {

+		 A.method2();

+	  }

+   };

+}

+

+interface I

+{

+   void method();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/out/A.java
new file mode 100644
index 0000000..ee9cb95
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/out/A.java
@@ -0,0 +1,8 @@
+package a;

+

+public class A

+{

+   public static void fred() //<--- refactor rename this method

+   {

+   }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/out/B.java
new file mode 100644
index 0000000..b344163
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test11/out/B.java
@@ -0,0 +1,19 @@
+package b;

+

+import a.A;

+

+public class B

+{

+   I i = new I()

+   {

+	  public void method()

+	  {

+		 A.fred();

+	  }

+   };

+}

+

+interface I

+{

+   void method();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test2/in/A.java
new file mode 100644
index 0000000..3083d67
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test2/in/A.java
@@ -0,0 +1,39 @@
+package p;

+class A{

+	static void m(){

+	}

+	void f(){

+		m();

+	}

+	static int fred(){

+		m();

+		return 1;

+	}

+	{

+		A.m();

+		m();

+		new A().m();

+	}

+	static {

+		A.m();

+		m();

+		new A().m();

+	}

+}

+class D{

+	static void m(){

+		A.m();

+		new A().m();

+		m();

+	}

+	static {

+		A.m();

+		new A().m();

+		m();

+	}

+	{

+		A.m();

+		new A().m();

+		m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test2/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test2/out/A.java
new file mode 100644
index 0000000..9e355b1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test2/out/A.java
@@ -0,0 +1,39 @@
+package p;

+class A{

+	static void k(){

+	}

+	void f(){

+		k();

+	}

+	static int fred(){

+		k();

+		return 1;

+	}

+	{

+		A.k();

+		k();

+		new A().k();

+	}

+	static {

+		A.k();

+		k();

+		new A().k();

+	}

+}

+class D{

+	static void m(){

+		A.k();

+		new A().k();

+		m();

+	}

+	static {

+		A.k();

+		new A().k();

+		m();

+	}

+	{

+		A.k();

+		new A().k();

+		m();

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test3/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test3/in/A.java
new file mode 100644
index 0000000..3b56d12
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test3/in/A.java
@@ -0,0 +1,15 @@
+package p;

+class A{

+static void m(){}

+}

+class B extends A{

+

+}

+class Test{

+void f(){

+	new A().m();

+	A.m();

+	new B().m();

+	B.m();

+}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test3/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test3/out/A.java
new file mode 100644
index 0000000..034fd8f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test3/out/A.java
@@ -0,0 +1,15 @@
+package p;

+class A{

+static void k(){}

+}

+class B extends A{

+

+}

+class Test{

+void f(){

+	new A().k();

+	A.k();

+	new B().k();

+	B.k();

+}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test4/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test4/in/A.java
new file mode 100644
index 0000000..6955510
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test4/in/A.java
@@ -0,0 +1,15 @@
+package p;

+class A{

+static void m(){}

+}

+class B extends A{

+static void m(){};

+}

+class Test{

+void f(){

+	new A().m();

+	A.m();

+	new B().m();

+	B.m();

+}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test4/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test4/out/A.java
new file mode 100644
index 0000000..6175de3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test4/out/A.java
@@ -0,0 +1,15 @@
+package p;

+class A{

+static void k(){}

+}

+class B extends A{

+static void m(){};

+}

+class Test{

+void f(){

+	new A().k();

+	A.k();

+	new B().m();

+	B.m();

+}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test5/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test5/in/A.java
new file mode 100644
index 0000000..e3c6837
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test5/in/A.java
@@ -0,0 +1,10 @@
+package p;

+//renaming A.m to k

+class A {

+	static void m(){}

+	class B{

+		void f(){

+			m();

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test5/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test5/out/A.java
new file mode 100644
index 0000000..bfec961
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test5/out/A.java
@@ -0,0 +1,10 @@
+package p;

+//renaming A.m to k

+class A {

+	static void k(){}

+	class B{

+		void f(){

+			k();

+		}

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test6/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test6/in/A.java
new file mode 100644
index 0000000..cc8ae72
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test6/in/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class A{

+	static void m(){

+	}

+}

+class test1{

+	void m(){

+		class X extends A{

+			void mm(){

+		}

+	}

+}}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test6/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test6/out/A.java
new file mode 100644
index 0000000..2a7cd55
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test6/out/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class A{

+	static void k(){

+	}

+}

+class test1{

+	void m(){

+		class X extends A{

+			void mm(){

+		}

+	}

+}}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test7/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test7/in/A.java
new file mode 100644
index 0000000..a6fb604
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test7/in/A.java
@@ -0,0 +1,7 @@
+package p;

+//renaming A.m to k

+class A{

+	static int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test7/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test7/out/A.java
new file mode 100644
index 0000000..44161cf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test7/out/A.java
@@ -0,0 +1,7 @@
+package p;

+//renaming A.m to k

+class A{

+	static int k(int m){

+		return k(k(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test8/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test8/in/A.java
new file mode 100644
index 0000000..e9c89b5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test8/in/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class A{

+	static int m(int m){

+		return m(m(m));

+	}

+}

+

+class B extends A{

+	static int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test8/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test8/out/A.java
new file mode 100644
index 0000000..6fcdb09
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test8/out/A.java
@@ -0,0 +1,13 @@
+package p;

+//renaming A.m to k

+class A{

+	static int k(int m){

+		return k(k(m));

+	}

+}

+

+class B extends A{

+	static int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test9/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test9/in/A.java
new file mode 100644
index 0000000..d9f9ede
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test9/in/A.java
@@ -0,0 +1,14 @@
+//no ref update

+package p;

+//renaming A.m to k

+class A{

+	static int m(int m){

+		return m(m(m));

+	}

+}

+

+class B extends A{

+	static int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test9/out/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test9/out/A.java
new file mode 100644
index 0000000..30dfa4e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/test9/out/A.java
@@ -0,0 +1,14 @@
+//no ref update

+package p;

+//renaming A.m to k

+class A{

+	static int k(int m){

+		return m(m(m));

+	}

+}

+

+class B extends A{

+	static int m(int m){

+		return m(m(m));

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail0/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail0/in/A.java
new file mode 100644
index 0000000..50b9f8b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail0/in/A.java
@@ -0,0 +1,5 @@
+package p;

+//can't rename native methods

+class A{

+ 	static private native void m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail1/in/A.java
new file mode 100644
index 0000000..d4dd18e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail1/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//can't rename m to k

+class A{

+ 	static private void m(){}

+ 	static private void k(){}	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail2/in/A.java
new file mode 100644
index 0000000..b2d322a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail2/in/A.java
@@ -0,0 +1,8 @@
+package p;

+//can't rename m to k

+class B{

+ 	void k(){}	

+}

+class A extends B{

+ 	static public void m(){}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail4/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail4/in/A.java
new file mode 100644
index 0000000..e3b8551
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail4/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//can't rename m to k

+class A{

+ 	static public void m(){}

+ 	void k(){}	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail5/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail5/in/A.java
new file mode 100644
index 0000000..c40ae26
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail5/in/A.java
@@ -0,0 +1,5 @@
+package p;

+//can't rename native methods

+class A{

+ 	static native void m();

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail6/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail6/in/A.java
new file mode 100644
index 0000000..8b34357
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail6/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//can't rename m to k

+class A{

+ 	static public void m(){}

+ 	static public void k(){}	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail7/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail7/in/A.java
new file mode 100644
index 0000000..dc63aad
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail7/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//can't rename m to k

+class A{

+ 	static public void m(){}

+ 	static private void k(){}	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail8/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail8/in/A.java
new file mode 100644
index 0000000..586f671
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameStaticMethod/testFail8/in/A.java
@@ -0,0 +1,6 @@
+package p;

+//can't rename m to k

+class A{

+ 	static public void m(){}

+ 	private void k(){}	

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedNestedTeamHasNewName/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedNestedTeamHasNewName/in/B.java
new file mode 100644
index 0000000..d998a9a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedNestedTeamHasNewName/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class B

+{

+    public team class A

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedRoleHasNewName/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedRoleHasNewName/in/B.java
new file mode 100644
index 0000000..33f5f43
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedRoleHasNewName/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class B

+{

+    public class A

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedRoleInNestedTeamHasNewName/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedRoleInNestedTeamHasNewName/in/B.java
new file mode 100644
index 0000000..89bb9b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosedRoleInNestedTeamHasNewName/in/B.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class B

+{

+    public team class C

+    {

+        public class A

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosingNestedTeamHasNewName/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosingNestedTeamHasNewName/in/B.java
new file mode 100644
index 0000000..89bb9b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosingNestedTeamHasNewName/in/B.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class B

+{

+    public team class C

+    {

+        public class A

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosingTeamHasNewName/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosingTeamHasNewName/in/B.java
new file mode 100644
index 0000000..d998a9a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testEnclosingTeamHasNewName/in/B.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class B

+{

+    public team class A

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSubTeam/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSubTeam/in/T.java
new file mode 100644
index 0000000..ff8d177
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSubTeam/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public class R

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSubTeam/in/TSub.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSubTeam/in/TSub.java
new file mode 100644
index 0000000..1a73bd8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSubTeam/in/TSub.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class TSub extends T

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSuperTeam/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSuperTeam/in/T.java
new file mode 100644
index 0000000..f87f6c8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSuperTeam/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T extends TSuper

+{

+    public class R

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSuperTeam/in/TSuper.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSuperTeam/in/TSuper.java
new file mode 100644
index 0000000..d1f8859
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingInSuperTeam/in/TSuper.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class TSuper

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/R1.java
new file mode 100644
index 0000000..9ddfbf6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/R1.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R1

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/T1.java
new file mode 100644
index 0000000..738f5f3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1 extends T2

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/T2.java
new file mode 100644
index 0000000..0a003cd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile1/in/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2

+{

+    public class R

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/R1.java
new file mode 100644
index 0000000..9ddfbf6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/R1.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R1

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/T.java
new file mode 100644
index 0000000..f62594e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T extends T1

+{

+    public class R

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/T1.java
new file mode 100644
index 0000000..bf4d42e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testImplicitOverridingWithRoleFile2/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashInSameTeam/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashInSameTeam/in/T.java
new file mode 100644
index 0000000..b92392e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashInSameTeam/in/T.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T{

+	public class R1{}

+	public class R2{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashWithRoleFile/in/R2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashWithRoleFile/in/R2.java
new file mode 100644
index 0000000..f29e44b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashWithRoleFile/in/R2.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R2

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashWithRoleFile/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashWithRoleFile/in/T1.java
new file mode 100644
index 0000000..0faeebf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameClashWithRoleFile/in/T1.java
@@ -0,0 +1,6 @@
+package p;

+

+public team class T1

+{

+    public class R1{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSubclass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSubclass/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSubclass/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSubclass/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSubclass/in/T2.java
new file mode 100644
index 0000000..4b8e578
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSubclass/in/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSuperclass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSuperclass/in/T1.java
new file mode 100644
index 0000000..8213e08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSuperclass/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1 extends T2

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSuperclass/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSuperclass/in/T2.java
new file mode 100644
index 0000000..b420010
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictInSuperclass/in/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2

+{

+    public class R1

+    {

+    }

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/A.java
new file mode 100644
index 0000000..27a8884
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/A.java
@@ -0,0 +1,5 @@
+package p2;

+

+public class A

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/T2.java
new file mode 100644
index 0000000..e40e21a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass1/in/T2.java
@@ -0,0 +1,9 @@
+package p2;

+import p.T1;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass2/in/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass2/in/A.java
new file mode 100644
index 0000000..1b163b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass2/in/A.java
@@ -0,0 +1,5 @@
+package p;

+

+public class A

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass2/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testNameConflictWithRegularClass2/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T1.java
new file mode 100644
index 0000000..a88fe67
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T1.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+    

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T2.java
new file mode 100644
index 0000000..1eb1de8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+    

+    public class R2 extends R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T3.java
new file mode 100644
index 0000000..be272b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T3.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T3 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T4.java
new file mode 100644
index 0000000..c264d0d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T4.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T4 extends T2

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T5.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T5.java
new file mode 100644
index 0000000..798a401
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T5.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T5 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R3 extends R1

+    {

+    }

+    

+    public class R2 extends R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T6.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T6.java
new file mode 100644
index 0000000..184d81a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T6.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T6 extends T2

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T7.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T7.java
new file mode 100644
index 0000000..20c0cd6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T7.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T7 extends T5

+{

+    public class R2

+    {

+    }

+    

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T8.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T8.java
new file mode 100644
index 0000000..022098d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/in/T8.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T8 extends T6

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T1.java
new file mode 100644
index 0000000..a6f745d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T1.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+    

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T2.java
new file mode 100644
index 0000000..493bb99
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+    

+    public class R_New extends R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T3.java
new file mode 100644
index 0000000..d33359a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T3.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T3 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T4.java
new file mode 100644
index 0000000..723a4d7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T4.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T4 extends T2

+{

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T5.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T5.java
new file mode 100644
index 0000000..ddf32c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T5.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T5 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R3 extends R1

+    {

+    }

+    

+    public class R_New extends R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T6.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T6.java
new file mode 100644
index 0000000..38e822d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T6.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T6 extends T2

+{

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T7.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T7.java
new file mode 100644
index 0000000..7b4539c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T7.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T7 extends T5

+{

+    public class R_New

+    {

+    }

+    

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T8.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T8.java
new file mode 100644
index 0000000..c2c2dbb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles1/out/T8.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T8 extends T6

+{

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/in/T1.java
new file mode 100644
index 0000000..f0011dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/in/T1.java
@@ -0,0 +1,18 @@
+package p;

+

+public team class T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R1

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/in/T2.java
new file mode 100644
index 0000000..ada3b63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/in/T2.java
@@ -0,0 +1,32 @@
+package p;

+

+public team class T2 extends T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R1

+            {

+            }

+            

+            public class R2 extends R1

+            {

+            }

+        }

+    }

+    

+    public team class TR3 extends TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R1 extends R0

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/out/T1.java
new file mode 100644
index 0000000..1de0054
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/out/T1.java
@@ -0,0 +1,18 @@
+package p;

+

+public team class T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R4

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/out/T2.java
new file mode 100644
index 0000000..e705224
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSubRoles2/out/T2.java
@@ -0,0 +1,32 @@
+package p;

+

+public team class T2 extends T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R4

+            {

+            }

+            

+            public class R2 extends R4

+            {

+            }

+        }

+    }

+    

+    public team class TR3 extends TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R4 extends R0

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T1.java
new file mode 100644
index 0000000..a88fe67
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T1.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+    

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T2.java
new file mode 100644
index 0000000..1eb1de8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+    

+    public class R2 extends R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T3.java
new file mode 100644
index 0000000..be272b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T3.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T3 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T4.java
new file mode 100644
index 0000000..c264d0d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T4.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T4 extends T2

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T5.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T5.java
new file mode 100644
index 0000000..798a401
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T5.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T5 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R3 extends R1

+    {

+    }

+    

+    public class R2 extends R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T6.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T6.java
new file mode 100644
index 0000000..184d81a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T6.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T6 extends T2

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T7.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T7.java
new file mode 100644
index 0000000..20c0cd6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T7.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T7 extends T5

+{

+    public class R2

+    {

+    }

+    

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T8.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T8.java
new file mode 100644
index 0000000..022098d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/in/T8.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T8 extends T6

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T1.java
new file mode 100644
index 0000000..a6f745d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T1.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+    

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T2.java
new file mode 100644
index 0000000..493bb99
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+    

+    public class R_New extends R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T3.java
new file mode 100644
index 0000000..d33359a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T3.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T3 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T4.java
new file mode 100644
index 0000000..723a4d7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T4.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T4 extends T2

+{

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T5.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T5.java
new file mode 100644
index 0000000..ddf32c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T5.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T5 extends T2

+{

+    public class R1

+    {

+    }

+    

+    public class R3 extends R1

+    {

+    }

+    

+    public class R_New extends R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T6.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T6.java
new file mode 100644
index 0000000..38e822d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T6.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T6 extends T2

+{

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T7.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T7.java
new file mode 100644
index 0000000..7b4539c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T7.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T7 extends T5

+{

+    public class R_New

+    {

+    }

+    

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T8.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T8.java
new file mode 100644
index 0000000..c2c2dbb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles1/out/T8.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T8 extends T6

+{

+    public class R_New

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/in/T1.java
new file mode 100644
index 0000000..f0011dd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/in/T1.java
@@ -0,0 +1,18 @@
+package p;

+

+public team class T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R1

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/in/T2.java
new file mode 100644
index 0000000..ada3b63
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/in/T2.java
@@ -0,0 +1,32 @@
+package p;

+

+public team class T2 extends T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R1

+            {

+            }

+            

+            public class R2 extends R1

+            {

+            }

+        }

+    }

+    

+    public team class TR3 extends TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R1 extends R0

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/out/T1.java
new file mode 100644
index 0000000..1de0054
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/out/T1.java
@@ -0,0 +1,18 @@
+package p;

+

+public team class T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R4

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/out/T2.java
new file mode 100644
index 0000000..e705224
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameImplicitSuperRoles2/out/T2.java
@@ -0,0 +1,32 @@
+package p;

+

+public team class T2 extends T1

+{

+    public team class TR1

+    {

+        public team class TR2

+        {

+            public class R4

+            {

+            }

+            

+            public class R2 extends R4

+            {

+            }

+        }

+    }

+    

+    public team class TR3 extends TR1

+    {

+        public team class TR2

+        {

+            public class R0

+            {

+            }

+            

+            public class R4 extends R0

+            {

+            }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameInnermostRole/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameInnermostRole/in/T.java
new file mode 100644
index 0000000..9e58184
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameInnermostRole/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public team class TR1

+    {

+        public class IR1

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameInnermostRole/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameInnermostRole/out/T.java
new file mode 100644
index 0000000..7c77ecc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameInnermostRole/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public team class TR1

+    {

+        public class IR2

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameNestedTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameNestedTeamclass/in/T.java
new file mode 100644
index 0000000..5b6e018
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameNestedTeamclass/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public team class TR1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameNestedTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameNestedTeamclass/out/T.java
new file mode 100644
index 0000000..172bdcd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameNestedTeamclass/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public team class TR2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclass/in/T.java
new file mode 100644
index 0000000..8af7c39
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclass/in/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclass/out/T.java
new file mode 100644
index 0000000..4821de9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclass/out/T.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassLiteralInPredicate/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassLiteralInPredicate/in/T.java
new file mode 100644
index 0000000..2073f8c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassLiteralInPredicate/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+    public class R1 playedBy java.util.LinkedList

+    	base when (T.this.hasRole(base, R1.class))

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassLiteralInPredicate/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassLiteralInPredicate/out/T.java
new file mode 100644
index 0000000..6de1ddf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassLiteralInPredicate/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+    public class ROut playedBy java.util.LinkedList

+    	base when (T.this.hasRole(base, ROut.class))

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassPrecedence/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassPrecedence/in/T.java
new file mode 100644
index 0000000..6d8249b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassPrecedence/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+    public class R1 {}

+    protected class R2 {}

+    

+    precedence R1, R2;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassPrecedence/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassPrecedence/out/T.java
new file mode 100644
index 0000000..4e699ab
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameRoleclassPrecedence/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+    public class R1 {}

+    protected class ROut {}

+    

+    precedence R1, ROut;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameTeamclass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameTeamclass/in/T1.java
new file mode 100644
index 0000000..bf4d42e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameTeamclass/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameTeamclass/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameTeamclass/out/T2.java
new file mode 100644
index 0000000..09e1dae
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testRenameTeamclass/out/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedName1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedName1/in/T.java
new file mode 100644
index 0000000..a389b50
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedName1/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	

+	public class R1{}

+	

+	public team class RT{

+		public class R2{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedName2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedName2/in/T.java
new file mode 100644
index 0000000..9b923e5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedName2/in/T.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T{

+	

+	public team class RT{

+		public class R1{}

+	}

+	

+	public class R2{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType1/in/T1.java
new file mode 100644
index 0000000..089527e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType1/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1 {

+	public class R1{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType1/in/T2.java
new file mode 100644
index 0000000..8a31290
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType1/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1 {

+	protected team class RT{

+		protected class R2{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType2/in/T1.java
new file mode 100644
index 0000000..3b51d8c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType2/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1 {

+	

+	public team class RT{

+		public class R1{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType2/in/T2.java
new file mode 100644
index 0000000..03c93cc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSubType2/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1 {

+	

+	protected class R2{}

+

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType1/in/T1.java
new file mode 100644
index 0000000..ea47b95
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType1/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1 extends T2{

+	public class R1{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType1/in/T2.java
new file mode 100644
index 0000000..db894a0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType1/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2{

+	protected team class RT{

+		public class R2{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType2/in/T1.java
new file mode 100644
index 0000000..32e032e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType2/in/T1.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T1 extends T2{

+	public team class RT{

+		public class R1{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType2/in/T2.java
new file mode 100644
index 0000000..63b397d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameOfSuperType2/in/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2{

+	public class R2{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile1/in/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile1/in/R1.java
new file mode 100644
index 0000000..9ddfbf6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile1/in/R1.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R1

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile1/in/T1.java
new file mode 100644
index 0000000..6fe7408
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile1/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{   

+	public team class RT{

+		public class R2{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile2/in/R2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile2/in/R2.java
new file mode 100644
index 0000000..e48b636
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile2/in/R2.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R2

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile2/in/T1.java
new file mode 100644
index 0000000..96eb28a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile2/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{   

+	public team class RT{

+		public class R1{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/R1.java
new file mode 100644
index 0000000..9ddfbf6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/R1.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R1

+{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/T1.java
new file mode 100644
index 0000000..f1bf76c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1

+{   

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/T2.java
new file mode 100644
index 0000000..6c2fd87
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile3/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1 {

+	public team class RT{

+		public class R2{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/RT.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/RT.java
new file mode 100644
index 0000000..94a8e48
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/RT.java
@@ -0,0 +1,6 @@
+team package p.T1;

+

+public team class RT

+{

+	public class R1{}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/T1.java
new file mode 100644
index 0000000..bf4d42e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/T1.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/T2.java
new file mode 100644
index 0000000..eecf3a1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile4/in/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2 extends T1 {

+	public class R2{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/RT.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/RT.java
new file mode 100644
index 0000000..11a663c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/RT.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public team class RT{

+	public class R2{}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/T1.java
new file mode 100644
index 0000000..241e12c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/T1.java
@@ -0,0 +1,4 @@
+package p;

+

+public team class T1{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/T2.java
new file mode 100644
index 0000000..2306d45
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile5/in/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2 extends T1{

+	public class R1{}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/R2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/R2.java
new file mode 100644
index 0000000..d1fc78f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/R2.java
@@ -0,0 +1,4 @@
+team package p.T1;

+

+public team class R2{

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/T1.java
new file mode 100644
index 0000000..241e12c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/T1.java
@@ -0,0 +1,4 @@
+package p;

+

+public team class T1{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/T2.java
new file mode 100644
index 0000000..4ba0262
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testShadowedNameRoleFile6/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2 extends T1{

+	public team class RT{

+		public class R1{}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/in/T2.java
new file mode 100644
index 0000000..12ca27c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/in/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/out/T2.java
new file mode 100644
index 0000000..247ec7a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSubRoles/out/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/in/T2.java
new file mode 100644
index 0000000..12ca27c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/in/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/out/T2.java
new file mode 100644
index 0000000..247ec7a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateImplicitSuperRoles/out/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T2.java
new file mode 100644
index 0000000..1d303bd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2 extends T1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T3.java
new file mode 100644
index 0000000..d04a046
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/in/T3.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T3 extends T2

+{

+    public class R2 extends R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T2.java
new file mode 100644
index 0000000..1d303bd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T2.java
@@ -0,0 +1,5 @@
+package p;

+

+public team class T2 extends T1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T3.java
new file mode 100644
index 0000000..d28c149
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdatePhantomTypeReference/out/T3.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T3 extends T2

+{

+    public class R2 extends R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/in/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/in/R1.java
new file mode 100644
index 0000000..fa35916
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/in/R1.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/in/T1.java
new file mode 100644
index 0000000..d0746b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/out/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/out/R1.java
new file mode 100644
index 0000000..c88a865
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/out/R1.java
@@ -0,0 +1,5 @@
+team package p.T2;

+

+public class R1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/out/T2.java
new file mode 100644
index 0000000..0bfb3f1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage1/out/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/R1.java
new file mode 100644
index 0000000..fa35916
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/R1.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/R2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/R2.java
new file mode 100644
index 0000000..f29e44b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/R2.java
@@ -0,0 +1,5 @@
+team package p.T1;

+

+public class R2

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/T1.java
new file mode 100644
index 0000000..d0746b2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/R1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/R1.java
new file mode 100644
index 0000000..c88a865
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/R1.java
@@ -0,0 +1,5 @@
+team package p.T2;

+

+public class R1

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/R2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/R2.java
new file mode 100644
index 0000000..6b45507
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/R2.java
@@ -0,0 +1,5 @@
+team package p.T2;

+

+public class R2

+{

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/T2.java
new file mode 100644
index 0000000..0bfb3f1
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceInTeamPackage2/out/T2.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T2

+{

+    public class R2

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/in/T2.java
new file mode 100644
index 0000000..25d7dc7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2

+{

+    public class R2 playedBy T1

+    {

+        private base.R1 aRoleOfMyBase;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/out/T2.java
new file mode 100644
index 0000000..5662163
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor1/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2

+{

+    public class R2 playedBy T1

+    {

+        private base.R3 aRoleOfMyBase;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/in/T2.java
new file mode 100644
index 0000000..cc5a42c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/in/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2

+{

+    public class R2 playedBy T1

+    {

+        callin void m(base.R1 r1)

+        {

+            base.m(r1);

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/out/T2.java
new file mode 100644
index 0000000..e2f654c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor2/out/T2.java
@@ -0,0 +1,12 @@
+package p;

+

+public team class T2

+{

+    public class R2 playedBy T1

+    {

+        callin void m(base.R3 r1)

+        {

+            base.m(r1);

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/in/T2.java
new file mode 100644
index 0000000..4091320
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/in/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2

+{

+    public team class TR2 playedBy T1

+    {

+        public class R2 playedBy base.R1

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/out/T2.java
new file mode 100644
index 0000000..fb677b0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor3/out/T2.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T2

+{

+    public team class TR2 playedBy T1

+    {

+        public class R2 playedBy base.R3

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/in/T2.java
new file mode 100644
index 0000000..36beec7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/in/T2.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T2

+{

+    public class R1

+    {

+    }

+

+    public team class TR2 playedBy T1

+    {

+        public class R2 playedBy base.R1

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/out/T2.java
new file mode 100644
index 0000000..75535e7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor4/out/T2.java
@@ -0,0 +1,15 @@
+package p;

+

+public team class T2

+{

+    public class R1

+    {

+    }

+

+    public team class TR2 playedBy T1

+    {

+        public class R2 playedBy base.R3

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/in/T1.java
new file mode 100644
index 0000000..c63c3ac
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/in/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/in/T2.java
new file mode 100644
index 0000000..a5ed66f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/in/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2

+{

+    final T1 t1 = new T1();

+    t1.R1 r1;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/out/T1.java
new file mode 100644
index 0000000..98ba72a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/out/T1.java
@@ -0,0 +1,8 @@
+package p;

+

+public team class T1

+{

+    public class R3

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/out/T2.java
new file mode 100644
index 0000000..ad3dab5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferenceUsingTypeAnchor5/out/T2.java
@@ -0,0 +1,7 @@
+package p;

+

+public team class T2

+{

+    final T1 t1 = new T1();

+    t1.R3 r1;

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToInnermostRole/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToInnermostRole/in/T.java
new file mode 100644
index 0000000..a8e9c12
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToInnermostRole/in/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+    public team class TR1

+    {

+        public class IR1

+        {

+	        private IR1 _t1;

+	    

+	        public void m(IR1 t1)

+	        {

+	        }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToInnermostRole/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToInnermostRole/out/T.java
new file mode 100644
index 0000000..61ac9c7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToInnermostRole/out/T.java
@@ -0,0 +1,16 @@
+package p;

+

+public team class T

+{

+    public team class TR1

+    {

+        public class IR2

+        {

+	        private IR2 _t1;

+	    

+	        public void m(IR2 t1)

+	        {

+	        }

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToNestedTeamclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToNestedTeamclass/in/T.java
new file mode 100644
index 0000000..7180f78
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToNestedTeamclass/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T

+{

+    public team class TR1

+    {

+        private TR1 _t1;

+    

+        public void m(TR1 t1)

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToNestedTeamclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToNestedTeamclass/out/T.java
new file mode 100644
index 0000000..b1b666d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToNestedTeamclass/out/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T

+{

+    public team class TR2

+    {

+        private TR2 _t1;

+    

+        public void m(TR2 t1)

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToRoleclass/in/T.java
new file mode 100644
index 0000000..af81b7c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToRoleclass/in/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T

+{

+    public class R1

+    {

+        private R1 _t1;

+    

+        public void m(R1 t1)

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToRoleclass/out/T.java
new file mode 100644
index 0000000..93a3e7a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToRoleclass/out/T.java
@@ -0,0 +1,13 @@
+package p;

+

+public team class T

+{

+    public class R2

+    {

+        private R2 _t1;

+    

+        public void m(R2 t1)

+        {

+        }

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToTeamclass/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToTeamclass/in/T1.java
new file mode 100644
index 0000000..ea28eb4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToTeamclass/in/T1.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T1

+{

+    private T1 _t1;

+    

+    public void m(T1 t1)

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToTeamclass/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToTeamclass/out/T2.java
new file mode 100644
index 0000000..7f3c669
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameType/testUpdateReferencesToTeamclass/out/T2.java
@@ -0,0 +1,10 @@
+package p;

+

+public team class T2

+{

+    private T2 _t1;

+    

+    public void m(T2 t1)

+    {

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/in/B.java
new file mode 100644
index 0000000..b407316
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void m2(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/in/T.java
new file mode 100644
index 0000000..a11fd68
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy B

+    {

+        private abstract void m1();

+        

+        m1 -> m2;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/out/B.java
new file mode 100644
index 0000000..b407316
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void m2(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/out/T.java
new file mode 100644
index 0000000..d4545d7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateAbstractMethodInRoleclass/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+    public class R playedBy B

+    {

+        private abstract void m3();

+        

+        m3 -> m2;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInNestedTeam/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInNestedTeam/in/T.java
new file mode 100644
index 0000000..ca2912f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInNestedTeam/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public team class TR

+	{

+		private void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInNestedTeam/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInNestedTeam/out/T.java
new file mode 100644
index 0000000..b35fdbe
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInNestedTeam/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public team class TR

+	{

+		private void k(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInRoleclass/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInRoleclass/in/T.java
new file mode 100644
index 0000000..5181f75
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInRoleclass/in/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private void m(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInRoleclass/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInRoleclass/out/T.java
new file mode 100644
index 0000000..ffccb3d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testRenamePrivateMethodInRoleclass/out/T.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T

+{

+	public class R

+	{

+		private void k(){}

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/in/T.java
new file mode 100644
index 0000000..4f0f2c5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/in/T.java
@@ -0,0 +1,10 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R extends B

+    {

+        public void m(){}

+        

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/out/T.java
new file mode 100644
index 0000000..616e7af
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateDeclarationOfOverridingRoleMethod/out/T.java
@@ -0,0 +1,10 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R extends B

+    {

+        public void k(){}

+        

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/in/T1.java
new file mode 100644
index 0000000..0d8ab2d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+        private void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/in/T2.java
new file mode 100644
index 0000000..bb5f053
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+        private void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/out/T1.java
new file mode 100644
index 0000000..a84b654
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1

+{

+    public class R1

+    {

+        private void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/out/T2.java
new file mode 100644
index 0000000..8623dd7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod1/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R1

+    {

+        private void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/in/T1.java
new file mode 100644
index 0000000..1d7c309
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1

+{

+    public team class TR1

+    {

+        private void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/in/T2.java
new file mode 100644
index 0000000..5d4743f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends T1

+{

+    public team class TR1

+    {

+        private void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/out/T1.java
new file mode 100644
index 0000000..c6f6d4e
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1

+{

+    public team class TR1

+    {

+        private void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/out/T2.java
new file mode 100644
index 0000000..104ae1c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateImplicitlyInheritedAndOverridingPrivateMethod2/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends T1

+{

+    public team class TR1

+    {

+        private void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding1/in/B.java
new file mode 100644
index 0000000..6c5ccf0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding1/in/B.java
@@ -0,0 +1,7 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+    public void k(int i){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding1/in/T.java
new file mode 100644
index 0000000..2b09939
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        callin void rm(){}

+        

+        rm <- replace k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding2/in/B.java
new file mode 100644
index 0000000..6c5ccf0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding2/in/B.java
@@ -0,0 +1,7 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+    public void k(int i){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding2/in/T.java
new file mode 100644
index 0000000..96016df
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateMethodToCauseAmbiguousCallinBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/in/B.java
new file mode 100644
index 0000000..eaf7c4c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/in/B.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public String m()

+    {

+        return "";

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/in/T.java
new file mode 100644
index 0000000..d44d300
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/in/T.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R

+    {

+        private String _fld = new B().m(); 

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/out/B.java
new file mode 100644
index 0000000..99a992c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/out/B.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public String k()

+    {

+        return "";

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/out/T.java
new file mode 100644
index 0000000..b623216
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInRole/out/T.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R

+    {

+        private String _fld = new B().k(); 

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/in/B.java
new file mode 100644
index 0000000..eaf7c4c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/in/B.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public String m()

+    {

+        return "";

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/in/T.java
new file mode 100644
index 0000000..65163af
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/in/T.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    private String _fld = new B().m(); 

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/out/B.java
new file mode 100644
index 0000000..99a992c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/out/B.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public String k()

+    {

+        return "";

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/out/T.java
new file mode 100644
index 0000000..e3093bd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInFieldInitializationInTeam/out/T.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    private String _fld = new B().k(); 

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/in/T.java
new file mode 100644
index 0000000..61e7994
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/in/T.java
@@ -0,0 +1,13 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R

+    {

+        public void rm()

+        {

+            new B().m();

+        }

+        

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/out/T.java
new file mode 100644
index 0000000..6b8fc2f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInRoleMethod/out/T.java
@@ -0,0 +1,13 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R

+    {

+        public void rm()

+        {

+            new B().k();

+        }

+        

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/in/T.java
new file mode 100644
index 0000000..bf12a7c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/in/T.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public void t()

+    {

+        new B().m();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/out/T.java
new file mode 100644
index 0000000..6c305b7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceInTeamMethod/out/T.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public void t()

+    {

+        new B().k();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/in/T.java
new file mode 100644
index 0000000..96016df
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/out/T.java
new file mode 100644
index 0000000..c0aabb0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBinding/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/in/T.java
new file mode 100644
index 0000000..77d073c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/in/T.java
@@ -0,0 +1,16 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after m;

+    }

+    

+    public class R2 extends R1

+    {

+        rm <- after m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/out/T.java
new file mode 100644
index 0000000..be630b7
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings1/out/T.java
@@ -0,0 +1,16 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after k;

+    }

+    

+    public class R2 extends R1

+    {

+        rm <- after k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/T1.java
new file mode 100644
index 0000000..124ebcf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/T1.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/T2.java
new file mode 100644
index 0000000..41aeeba
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        rm <- after m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/T1.java
new file mode 100644
index 0000000..e5b2dcb
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/T1.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R playedBy B

+    {

+        public void rm(){}

+        

+        rm <- after k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/T2.java
new file mode 100644
index 0000000..fb3fac9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCallinBindings2/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        rm <- after k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/in/T.java
new file mode 100644
index 0000000..8d8c204
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/out/T.java
new file mode 100644
index 0000000..2891ccd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding1/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/in/B.java
new file mode 100644
index 0000000..bd81788
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/in/B.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private static final int COUNT = 10;

+    

+    public int getAmount()

+    {

+        return COUNT;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/in/T.java
new file mode 100644
index 0000000..8394b06
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        int number = getAmount();

+        

+        int getAmount() -> int getAmount();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/out/B.java
new file mode 100644
index 0000000..c0b5a11
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/out/B.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    private static final int COUNT = 10;

+    

+    public int getQuantity()

+    {

+        return COUNT;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/out/T.java
new file mode 100644
index 0000000..9a1f502
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInCalloutBinding2/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R playedBy B

+    {

+        int number = getAmount();

+        

+        int getAmount() -> int getQuantity();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/in/T.java
new file mode 100644
index 0000000..d330bea
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/in/T.java
@@ -0,0 +1,16 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> m;

+    }

+    

+    public class R2 extends R1

+    {

+        rm => m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/out/T.java
new file mode 100644
index 0000000..7fd7a18
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInExplicitlyOverriddenCalloutBinding/out/T.java
@@ -0,0 +1,16 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> k;

+    }

+    

+    public class R2 extends R1

+    {

+        rm => k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/B.java
new file mode 100644
index 0000000..c611718
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/T1.java
new file mode 100644
index 0000000..cb211ef
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/T1.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/T2.java
new file mode 100644
index 0000000..ab168d4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        rm => m;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/B.java
new file mode 100644
index 0000000..5db0d08
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/T1.java
new file mode 100644
index 0000000..2fb7043
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/T1.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R playedBy B

+    {

+        public abstract void rm();

+        

+        rm -> k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/T2.java
new file mode 100644
index 0000000..a656e47
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToBaseMethodInImplicitlyOverriddenCalloutBinding/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        rm => k;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/in/T.java
new file mode 100644
index 0000000..a9cf0cc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/in/T.java
@@ -0,0 +1,13 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R extends S

+    {

+    	public void m(){}

+    	public void r()

+    	{

+            m();

+       	}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/out/T.java
new file mode 100644
index 0000000..4b57b69
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethod/out/T.java
@@ -0,0 +1,13 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R extends S

+    {

+    	public void k(){}

+    	public void r()

+    	{

+            k();

+       	}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/B.java
new file mode 100644
index 0000000..774412a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+  public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/T.java
new file mode 100644
index 0000000..1bc4f11
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/in/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R extends S playedBy B

+    {

+        public void m(){}

+        

+        m <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/B.java
new file mode 100644
index 0000000..774412a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+  public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/T.java
new file mode 100644
index 0000000..e31be32
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBinding/out/T.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R extends S playedBy B

+    {

+        public void k(){}

+        

+        k <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/T1.java
new file mode 100644
index 0000000..e258362
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/T2.java
new file mode 100644
index 0000000..c4deb0f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        m <- b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/T1.java
new file mode 100644
index 0000000..dd7abe6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/T2.java
new file mode 100644
index 0000000..20aa9c4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindingOfImplicitSubrole/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        k <- b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/T.java
new file mode 100644
index 0000000..4c0d45d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/in/T.java
@@ -0,0 +1,16 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 extends S playedBy B

+    {

+        public void m(){}

+        

+        m <- after b;

+    }

+    

+    public class R2 extends R1

+    {

+        m <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/T.java
new file mode 100644
index 0000000..f3973d0
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings1/out/T.java
@@ -0,0 +1,16 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 extends S playedBy B

+    {

+        public void k(){}

+        

+        k <- after b;

+    }

+    

+    public class R2 extends R1

+    {

+        k <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/T1.java
new file mode 100644
index 0000000..e8c59bc
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/T1.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        public void m(){}

+        

+        m <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/T2.java
new file mode 100644
index 0000000..cfdc25c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        m <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/T1.java
new file mode 100644
index 0000000..cd1606b
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/T1.java
@@ -0,0 +1,11 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        public void k(){}

+        

+        k <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/T2.java
new file mode 100644
index 0000000..cfaa18f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCallinBindings2/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        k <- after b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/T1.java
new file mode 100644
index 0000000..e258362
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/T2.java
new file mode 100644
index 0000000..303f914
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        m => b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/T1.java
new file mode 100644
index 0000000..dd7abe6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/T2.java
new file mode 100644
index 0000000..0be3e5f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInCalloutBindingOfImplicitSubrole/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        k => b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/T.java
new file mode 100644
index 0000000..7ec94b3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/in/T.java
@@ -0,0 +1,14 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 extends S playedBy B

+    {

+        m => b;

+    }

+    

+    public class R2 extends R1

+    {

+        void m() => void b();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/T.java
new file mode 100644
index 0000000..0054a41
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInExplicitlyOverriddenCalloutBinding/out/T.java
@@ -0,0 +1,14 @@
+package p;

+//renaming B.m to k

+public team class T

+{

+    public class R1 extends S playedBy B

+    {

+        k => b;

+    }

+    

+    public class R2 extends R1

+    {

+        void k() => void b();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/T1.java
new file mode 100644
index 0000000..83a7f9d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        m => b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/T2.java
new file mode 100644
index 0000000..73369cf
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        void m() => void b();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/B.java
new file mode 100644
index 0000000..89204f2
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class B

+{

+    public void b(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/T1.java
new file mode 100644
index 0000000..a1b7337
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S playedBy B

+    {

+        k => b;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/T2.java
new file mode 100644
index 0000000..409b93d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInImplicitlyOverriddenCalloutBinding/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        void k() => void b();

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/S.java
new file mode 100644
index 0000000..10ef413
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void m(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/T1.java
new file mode 100644
index 0000000..ce94859
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S

+    {

+        public void m(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/T2.java
new file mode 100644
index 0000000..143970f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/in/T2.java
@@ -0,0 +1,12 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        public void m()

+        {

+            tsuper.m();

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/S.java
new file mode 100644
index 0000000..c8814d5
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/S.java
@@ -0,0 +1,6 @@
+package p;

+//renaming B.m to k

+public class S

+{

+    public void k(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/T1.java
new file mode 100644
index 0000000..db26eb6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+//renaming B.m to k

+public team class T1

+{

+    public class R extends S

+    {

+        public void k(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/T2.java
new file mode 100644
index 0000000..5bc8fd4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToOverridingRoleMethodInTsuperCall/out/T2.java
@@ -0,0 +1,12 @@
+package p;

+//renaming B.m to k

+public team class T2 extends T1

+{

+    public class R

+    {

+        public void k()

+        {

+            tsuper.k();

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/in/B.java
new file mode 100644
index 0000000..b407316
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void m2(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/in/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/in/T.java
new file mode 100644
index 0000000..9fee299
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/in/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		private void m1(){}

+		

+		m1 <- after m2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/out/B.java
new file mode 100644
index 0000000..b407316
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void m2(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/out/T.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/out/T.java
new file mode 100644
index 0000000..1ffb5e6
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCallinBinding/out/T.java
@@ -0,0 +1,11 @@
+package p;

+

+public team class T

+{

+	public class R playedBy B

+	{

+		private void m3(){}

+		

+		m3 <- after m2;

+	}

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/B.java
new file mode 100644
index 0000000..b407316
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void m2(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/T1.java
new file mode 100644
index 0000000..ffffdbd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1

+{

+    public class R

+    {

+        private void m1(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/T2.java
new file mode 100644
index 0000000..e8c67e4
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/in/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R playedBy B

+    {

+        m1 => m2;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/B.java
new file mode 100644
index 0000000..b407316
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/B.java
@@ -0,0 +1,6 @@
+package p;

+

+public class B

+{

+    public void m2(){}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/T1.java
new file mode 100644
index 0000000..b366acd
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/T1.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T1

+{

+    public class R

+    {

+        private void m3(){}

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/T2.java
new file mode 100644
index 0000000..c40dc86
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/testdata/RenameVirtualMethodInClass/testUpdateReferenceToPrivateRoleMethodInCalloutBinding/out/T2.java
@@ -0,0 +1,9 @@
+package p;

+

+public team class T2 extends T1

+{

+    public class R playedBy B

+    {

+        m3 => m2;

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/.classpath b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/.classpath
new file mode 100644
index 0000000..3629692
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>		

+    <classpathentry kind="var" path="CONVERTER_JCL_LIB" sourcepath="CONVERTER_JCL_SRC" rootpath="CONVERTER_JCL_SRCROOT"/>    

+	<classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>

+    <classpathentry kind="output" path="bin"/>

+    <classpathentry kind="lib" sourcepath="src" path="bins"/>

+

+	<classpathentry kind="var" path="OTDT_INSTALLDIR/lib/otre.jar"/>

+</classpath>

+

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/.project b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/.project
new file mode 100644
index 0000000..1b27188
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/.project
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>ExtractMethodRefactoringUtil</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>

+	</natures>

+</projectDescription>

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/A.java
new file mode 100644
index 0000000..4e2bc03
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/A.java
@@ -0,0 +1,12 @@
+package roleAndBaseHierarchy1;

+

+public class A

+{

+    private void n(char c){}

+    public void g(String s){}

+    public void f(int x)

+    {

+        String s = "";

+        /*[*/g(s);/*]*/

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/B.java
new file mode 100644
index 0000000..db66074
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/B.java
@@ -0,0 +1,10 @@
+package roleAndBaseHierarchy1;

+

+public class B extends A

+{

+    public void h(){}

+    public void f(int x)

+    {

+        /*[*/h();/*]*/

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/C.java
new file mode 100644
index 0000000..24d9862
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/C.java
@@ -0,0 +1,9 @@
+package roleAndBaseHierarchy1;

+

+public class C extends B

+{

+    public void f(int x)

+    {

+        /*[*/x = 3;/*]*/

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/Q.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/Q.java
new file mode 100644
index 0000000..69989ff
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/Q.java
@@ -0,0 +1,11 @@
+package roleAndBaseHierarchy1;

+

+public class Q

+{

+    String r, s, t;

+    

+    public void m(int x)

+    {

+        /*[*/r = s + t;/*]*/

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/S.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/S.java
new file mode 100644
index 0000000..9a3d4d8
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/S.java
@@ -0,0 +1,9 @@
+package roleAndBaseHierarchy1;

+

+public class S extends Q

+{

+    public void n()

+    {

+        /*[*/System.out.println();/*]*/

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T1.java
new file mode 100644
index 0000000..d2e1fef
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T1.java
@@ -0,0 +1,11 @@
+package roleAndBaseHierarchy1;

+

+public team class T1

+{

+	int _x, _y, _z;

+	

+	public void m(int x)

+	{

+	    /*[*/_z = _x + _y;/*]*/

+	}

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T2.java
new file mode 100644
index 0000000..2ba5c3c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T2.java
@@ -0,0 +1,19 @@
+package roleAndBaseHierarchy1;

+

+public team class T2

+{    

+    public class R1 extends Q playedBy A

+    {

+        int x, y, z;

+        

+        private void k(char c){}

+        public void rm(int u, int v, int w)

+        {

+            /*[*/x = u;

+                 y = v;

+                 z = w;/*]*/

+        }

+        

+        m <- before f;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T3.java
new file mode 100644
index 0000000..4338a3c
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/ExtractMethodRefactoringUtil/src/roleAndBaseHierarchy1/T3.java
@@ -0,0 +1,24 @@
+package roleAndBaseHierarchy1;

+

+public team class T3 extends T2

+{

+    public class R1 extends S playedBy A

+    {

+        public void m(int x)

+        {

+            rm();

+        }

+        

+        m <- after f;

+    }

+    

+    public class R2 extends R1 playedBy C

+    {

+        public void rm2(String str)

+        {

+            /*[*/str = "";/*]*/

+        }

+        

+        m => f;

+    }

+}
\ No newline at end of file
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/.classpath b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/.classpath
new file mode 100644
index 0000000..3629692
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>		

+    <classpathentry kind="var" path="CONVERTER_JCL_LIB" sourcepath="CONVERTER_JCL_SRC" rootpath="CONVERTER_JCL_SRCROOT"/>    

+	<classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>

+    <classpathentry kind="output" path="bin"/>

+    <classpathentry kind="lib" sourcepath="src" path="bins"/>

+

+	<classpathentry kind="var" path="OTDT_INSTALLDIR/lib/otre.jar"/>

+</classpath>

+

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/.project b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/.project
new file mode 100644
index 0000000..20612c3
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/.project
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>RefactoringUtil</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.objectteams.otdt.builder.OTJBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+		<nature>org.eclipse.objectteams.otdt.OTJavaNature</nature>

+	</natures>

+</projectDescription>

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/A.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/A.java
new file mode 100644
index 0000000..954f412
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/A.java
@@ -0,0 +1,9 @@
+package rolehierarchy1;

+

+

+public class A extends AA implements ITest1

+{

+    public void m1()

+    {

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/AA.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/AA.java
new file mode 100644
index 0000000..f678432
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/AA.java
@@ -0,0 +1,8 @@
+package rolehierarchy1;

+

+public class AA

+{

+    public void m1()

+    {

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/B.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/B.java
new file mode 100644
index 0000000..27edf6d
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/B.java
@@ -0,0 +1,9 @@
+package rolehierarchy1;

+

+

+public class B extends A

+{

+    public void m1()

+    {

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/C.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/C.java
new file mode 100644
index 0000000..026af9f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/C.java
@@ -0,0 +1,13 @@
+package rolehierarchy1;

+

+

+public class C implements ITest1

+{

+    public void m1()

+    {

+    }

+    

+    public void m2()

+    {

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/ITest1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/ITest1.java
new file mode 100644
index 0000000..9efd3f9
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/ITest1.java
@@ -0,0 +1,6 @@
+package rolehierarchy1;

+

+public interface ITest1 extends ITest2

+{

+

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/ITest2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/ITest2.java
new file mode 100644
index 0000000..e92f809
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/ITest2.java
@@ -0,0 +1,6 @@
+package rolehierarchy1;

+

+public interface ITest2

+{

+    public void m1();

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team1.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team1.java
new file mode 100644
index 0000000..6a4189f
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team1.java
@@ -0,0 +1,12 @@
+package rolehierarchy1;

+

+public team class Team1

+{

+    public class Role1 implements ITest1

+    {

+        public void m1()

+        {

+            

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team2.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team2.java
new file mode 100644
index 0000000..39eaf2a
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team2.java
@@ -0,0 +1,17 @@
+package rolehierarchy1;

+

+public team class Team2 extends Team1

+{

+    public class Role1

+    {

+        public void m1()

+        {

+            int x = 0;

+        }

+        

+        public void m2()

+        {

+        	

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team3.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team3.java
new file mode 100644
index 0000000..2bb7f12
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team3.java
@@ -0,0 +1,12 @@
+package rolehierarchy1;

+

+public team class Team3

+{

+    public class Role2 extends C

+    {

+        public void m1()

+        {

+            

+        }

+    }

+}

diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team4.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team4.java
new file mode 100644
index 0000000..06efa39
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/workspace/RefactoringUtil/src/rolehierarchy1/Team4.java
@@ -0,0 +1,14 @@
+package rolehierarchy1;

+

+public team class Team4 extends Team3

+{

+    public class Role2

+    {

+        public void m1()

+        {

+        }

+        public void m2()

+        {

+        }

+    }

+}