refactoring CREATE ASSICIATED CLASS added
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController$1.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController$1.class
new file mode 100644
index 0000000..b430214
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController$1.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController$InternalRefactoringProcessor.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController$InternalRefactoringProcessor.class
new file mode 100644
index 0000000..19835ff
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController$InternalRefactoringProcessor.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController.class
new file mode 100644
index 0000000..21e681e
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringDataManagement.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringDataManagement.class
new file mode 100644
index 0000000..391fa33
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringDataManagement.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringGuiHandler.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringGuiHandler.class
new file mode 100644
index 0000000..34899e0
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringGuiHandler.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringInformation.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringInformation.class
new file mode 100644
index 0000000..b1f872e
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringInformation.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest$1.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest$1.class
new file mode 100644
index 0000000..a687260
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest$1.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest.class
new file mode 100644
index 0000000..82d3922
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizard.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizard.class
new file mode 100644
index 0000000..584d0eb
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizard.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizardPage.class b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizardPage.class
new file mode 100644
index 0000000..8b03d0a
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/bin/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizardPage.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/plugin.xml b/org.eclipse.emf.refactor.refactorings.uml24.henshin/plugin.xml
index de112a2..0e7841e 100644
--- a/org.eclipse.emf.refactor.refactorings.uml24.henshin/plugin.xml
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/plugin.xml
@@ -2,6 +2,12 @@
 <plugin>

 <extension point="org.eclipse.emf.refactor.refactorings">

 <refactoring

+      controller="org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass.RefactoringController"

+      gui="org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass.RefactoringGuiHandler"

+      id="org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass"

+      menulabel="Create Associated Class"

+      namespaceUri="http://www.eclipse.org/uml2/4.0.0/UML"/>

+<refactoring

       controller="org.eclipse.emf.refactor.refactorings.uml24.hideattribute.RefactoringController"

       gui="org.eclipse.emf.refactor.refactorings.uml24.hideattribute.RefactoringGuiHandler"

       id="org.eclipse.emf.refactor.refactorings.uml24.hideattribute"

diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController.java
new file mode 100644
index 0000000..7cfe914
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringController.java
@@ -0,0 +1,173 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringControllerHenshin.javajet,v 1.1 2010/07/15 13:09:58 tarendt Exp $

+ */

+ package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+import java.util.ArrayList;

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.refactoring.core.Refactoring;

+import org.eclipse.emf.refactor.refactoring.henshin.interfaces.IHenshinController;

+import org.eclipse.emf.refactor.refactoring.henshin.interfaces.IHenshinDataManagement;

+import org.eclipse.emf.refactor.refactoring.henshin.managers.HenshinRuntimeManager;

+import org.eclipse.emf.refactor.refactoring.henshin.runtime.HenshinLtkEmfRefactoringProcessorAdapter;

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

+

+/**

+ * Concrete EMF model refactoring class implementing IHenshinController. 

+ * @generated

+ */

+public final class RefactoringController implements IHenshinController{

+

+	/**

+	 * Refactoring supported by the controller.

+	 * @generated

+	 */

+	private Refactoring parent;

+	

+	/**

+	 * DataManagement object of the model refactoring.

+	 * @generated

+	 */

+	private RefactoringDataManagement dataManagement = 

+									new RefactoringDataManagement();

+									

+	/**

+	 * Invocation context of the model refactoring.

+	 * @generated

+	 */								

+	private List<EObject> selection = new ArrayList<EObject>();

+	

+	/**

+	 * HenshinRuntimeManager that executes Henshin transformations using 

+	 * the Henshin interpreter.

+	 * @generated

+	 */

+	private HenshinRuntimeManager henshinRuntimeManager = 

+					new HenshinRuntimeManager(new ArrayList<EObject>(0), dataManagement);

+	

+	/**

+	 * Ltk RefactoringProcessor of the model refactoring.

+	 * @generated

+	 */

+	private InternalRefactoringProcessor refactoringProcessor = null;

+	

+	/**

+	 * Gets the Refactoring supported by the controller.

+	 * @return Refactoring supported by the controller.

+	 * @see org.eclipse.emf.refactor.common.core.IController#getParent()

+	 * @generated

+	 */

+	@Override

+	public Refactoring getParent() {

+		return this.parent;

+	}

+	

+	/**

+	 * Sets the Refactoring supported by the controller.

+	 * @param emfRefactoring Refactoring supported by the controller.

+	 * @see org.eclipse.emf.refactor.common.core.IController#

+	 * setParent(org.eclipse.emf.refactor.common.core.Refactoring)

+	 * @generated

+	 */

+	@Override

+	public void setParent(Refactoring emfRefactoring) {

+		this.parent = emfRefactoring;

+	}

+	

+	/**

+	 * Returns the DataManagement object of the model refactoring.

+	 * @return DataManagement object of the model refactoring.

+	 * @see org.eclipse.emf.refactor.henshin.core.IHenshinController#

+	 * getDataManagementObject()

+	 * @generated

+	 */

+	@Override

+	public IHenshinDataManagement getDataManagementObject() {

+		return this.dataManagement;

+	}

+	

+	/**

+	 * Gets a HenshinRuntimeManager that executes Henshin transformations using 

+	 * the Henshin interpreter.

+	 * @return HenshinRuntimeManager that executes Henshin transformations using 

+	 * the Henshin interpreter.

+	 * @see org.eclipse.emf.refactor.henshin.core.IHenshinController#

+	 * getHenshinRuntimeManager()

+	 * @generated

+	 */

+	@Override

+	public HenshinRuntimeManager getHenshinRuntimeManager() {

+		return this.henshinRuntimeManager;

+	}

+

+	/**

+	 * Returns the ltk RefactoringProcessor of the model refactoring.

+	 * @return Ltk RefactoringProcessor of the model refactoring.

+	 * @see org.eclipse.emf.refactor.common.core.IController#

+	 * getLtkRefactoringProcessor()

+	 * @generated

+	 */

+	@Override

+	public RefactoringProcessor getLtkRefactoringProcessor() {

+		return this.refactoringProcessor;

+	}

+	

+	/**

+	 * Sets the selected EObject (invocation context of the model refactoring).

+	 * @param selection Invocation context of the model refactoring.

+	 * @see org.eclipse.emf.refactor.common.core.IController#

+	 * setSelection(java.util.List)

+	 * @generated

+	 */

+	@Override

+	public void setSelection(List<EObject> selection) {

+		this.selection = selection;

+		this.henshinRuntimeManager = new HenshinRuntimeManager(this.selection, this.dataManagement);

+		this.refactoringProcessor = 

+				new InternalRefactoringProcessor(this.selection);

+	}	

+	

+	/**

+	 * Returns a Runnable object that executes the model refactoring.

+	 * @return Runnable object that executes the model refactoring.

+	 * @generated

+	 */

+	private Runnable applyRefactoring() {

+		return new Runnable() {				

+			/**

+			 * @see java.lang.Runnable#run()

+			 * @generated

+			 */

+			@Override

+			public void run() {

+				henshinRuntimeManager = new HenshinRuntimeManager(selection, dataManagement);

+				henshinRuntimeManager.run();

+			}

+		};

+	}

+

+	/**

+	 * Internal class for providing an instance of a LTK RefactoringProcessor 

+	 * used for EMF model refactorings using Henshin transformations.	 

+	 * @generated

+	 */

+	public final class InternalRefactoringProcessor extends 

+									HenshinLtkEmfRefactoringProcessorAdapter {

+

+		/**

+		 * Constructor using the invocation context of the model refactoring.

+		 * @param selection Invocation context of the model refactoring.

+		 * @generated

+		 */

+		private InternalRefactoringProcessor(List<EObject> selection){

+				super(getParent(), selection, applyRefactoring());				

+		}

+		

+	}

+

+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringDataManagement.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringDataManagement.java
new file mode 100644
index 0000000..44ff6a0
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringDataManagement.java
@@ -0,0 +1,137 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringDataManagementHenshin.javajet,v 1.1 2010/07/15 13:09:58 tarendt Exp $

+ */

+ package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.refactoring.core.Port;

+import org.eclipse.emf.refactor.refactoring.henshin.interfaces.IHenshinDataManagement;

+import org.eclipse.emf.refactor.refactoring.henshin.interfaces.IHenshinInformation;

+import org.eclipse.emf.refactor.refactoring.runtime.DataManagementAdapter;

+

+/**

+ * Class for specific data concerning a model refactoring.

+ * @generated

+ */

+public class RefactoringDataManagement extends DataManagementAdapter 

+											implements IHenshinDataManagement {

+

+	private final String SELECTEDEOBJECT = "selectedEObject";

+	

+	/**

+	 * HenshinInformation object used for checking the initial

+	 * conditions of the EMF model refactoring.

+	 * @generated

+	 */

+	private RefactoringInformation initialConditionsInformation = 

+								new RefactoringInformation(this);

+								

+	/**

+	 * HenshinInformation object used for checking the final

+	 * conditions of the EMF model refactoring.

+	 * @generated

+	 */							

+	private RefactoringInformation finalConditionsInformation = 

+								new RefactoringInformation(this);

+								

+	/**

+	 * HenshinInformation object used for executing the EMF 

+	 * model refactoring.

+	 * @generated

+	 */							

+	private RefactoringInformation createChangeInformation = 

+								new RefactoringInformation(this);

+

+	/**

+	 * Default constructor.

+	 * @generated

+	 */

+	public RefactoringDataManagement() {

+		this.addPorts();

+		this.addInformation();

+	}

+	

+	/**

+	 * Adds the ports to the data management used for parameter passing.

+	 * @generated

+	 */

+	private void addPorts(){

+		this.inPorts.add

+			(new Port<org.eclipse.uml2.uml.Class>

+				(SELECTEDEOBJECT, org.eclipse.uml2.uml.Class.class));

+		this.inPorts.add

+			(new Port<String>

+				("className", String.class, "unspecified"));

+		this.inPorts.add

+			(new Port<String>

+				("associationName", String.class, "unspecified"));

+		this.inPorts.add

+			(new Port<String>

+				("roleName1", String.class, "unspecified"));

+		this.inPorts.add

+			(new Port<String>

+				("roleName2", String.class, "unspecified"));		

+	}

+	

+	/**

+	 * Adds the Henshin informations to the data management.

+	 * @generated

+	 */

+	private void addInformation() {		

+		this.initialConditionsInformation.

+				setTransformationFileName("create_associated_class_check_1");			

+		this.finalConditionsInformation.

+				setTransformationFileName("create_associated_class_check_2");			

+		this.createChangeInformation.

+				setTransformationFileName("create_associated_class_execute");

+	}

+	

+	/**

+	 * @see org.eclipse.emf.refactor.henshin.core.IHenshinDataManagement#

+	 * getCreateChangeHenshinInformation()

+	 * @generated

+	 */

+	@Override

+	public IHenshinInformation getCreateChangeHenshinInformation() {

+		return this.createChangeInformation;

+	}

+

+	/**

+	 * @see org.eclipse.emf.refactor.henshin.core.IHenshinDataManagement#

+	 * getFinalConditionsHenshinInformation()

+	 * @generated

+	 */

+	@Override

+	public IHenshinInformation getFinalConditionsHenshinInformation() {

+		return this.finalConditionsInformation;

+	}

+

+	/**

+	 * @see org.eclipse.emf.refactor.henshin.core.IHenshinDataManagement#

+	 * getInitialConditionsHenshinInformation()

+	 * @generated

+	 */

+	@Override

+	public IHenshinInformation getInitialConditionsHenshinInformation() {

+		return this.initialConditionsInformation;

+	}

+	

+	/**

+	 * @see org.eclipse.emf.refactor.common.core.IDataManagement#

+	 * preselect(java.util.List)

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void preselect(List<EObject> selection) {

+		getInPortByName(SELECTEDEOBJECT).

+				setValue((org.eclipse.uml2.uml.Class) selection.get(0));

+	}

+

+}

+	
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringGuiHandler.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringGuiHandler.java
new file mode 100644
index 0000000..8dfcb1e
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringGuiHandler.java
@@ -0,0 +1,76 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringGuiHandlerHenshin.javajet,v 1.1 2010/07/15 13:09:58 tarendt Exp $

+ */

+ package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.refactoring.core.Refactoring;

+import org.eclipse.emf.refactor.refactoring.interfaces.IGuiHandler;

+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;

+

+/**

+ * Class used for specifying gui topics of a specific model refactoring.

+ * @generated

+ */

+public class RefactoringGuiHandler implements IGuiHandler {

+

+	/**

+	 * Refactoring supported by the GuiHandler.

+	 * @generated

+	 */

+	Refactoring parent;

+	

+	/**

+	 * @see org.eclipse.emf.refactor.common.core.ui.IGuiHandler#getParent()

+	 * @generated

+	 */

+	@Override

+	public Refactoring getParent() {

+		return parent;

+	}

+

+	/**

+	 * @see org.eclipse.emf.refactor.common.core.ui.IGuiHandler#

+	 * setParent(org.eclipse.emf.refactor.common.core.Refactoring)

+	 * @generated

+	 */

+	@Override

+	public void setParent(Refactoring emfRefactoring) {

+		this.parent = emfRefactoring;

+	}

+		

+	/**

+	 * @see org.eclipse.emf.refactor.common.core.ui.IGuiHandler#show()

+	 * @generated

+	 */

+	@Override

+	public RefactoringWizard show() {

+		return new org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass.RefactoringWizard

+		((RefactoringController)this.parent.getController());

+	}

+	

+	/**

+	 * @see org.eclipse.emf.refactor.common.core.ui.IGuiHandler#

+	 * showInMenu(java.util.List)

+	 * @generated

+	 */

+	@Override

+	public boolean showInMenu(List<EObject> selection) {

+		if (selection.size() > 1) return false;

+		for(EObject o:selection){

+			if(null != o){

+				if (o instanceof org.eclipse.uml2.uml.Class) {

+					return true;

+				}

+			} 

+		}

+		return false;

+	}

+

+}	

+	
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringInformation.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringInformation.java
new file mode 100644
index 0000000..380f262
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringInformation.java
@@ -0,0 +1,79 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringInformationHenshin.javajet,v 1.2 2011/03/16 14:39:16 tarendt Exp $

+ */

+ package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+import java.io.File;

+

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

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

+import org.eclipse.emf.refactor.refactoring.henshin.interfaces.IHenshinDataManagement;

+import org.eclipse.emf.refactor.refactoring.henshin.runtime.HenshinInformationAdapter;

+import org.eclipse.emf.refactor.refactorings.uml24.henshin.Activator;

+import org.osgi.framework.Bundle;

+

+/**

+ * Class used for specifying a Henshin file that shall be used by

+ * a specific EMF model refactoring.

+ * @generated

+ */

+public class RefactoringInformation extends HenshinInformationAdapter {

+	

+	/**

+	 * HenshinDataManagement object of the specific EMF model refactoring.

+	 * @generated

+	 */

+	private RefactoringDataManagement dataManagement;

+	

+	/**

+	 * Default constructor using a RefactoringDataManagement object.

+	 * @param dataManagement HenshinDataManagement object of the specific 

+	 * EMF model refactoring.

+	 * @generated

+	 */

+	public RefactoringInformation

+				(RefactoringDataManagement dataManagement) {

+		super();

+		this.dataManagement = dataManagement;

+	}

+

+	/**

+	 * @see org.eclipse.emf.refactor.henshin.core.IHenshinInformation#

+	 * getHenshinDataManagement()

+	 * @generated

+	 */

+	@Override

+	public IHenshinDataManagement getHenshinDataManagement() {

+		return this.dataManagement;

+	}

+	

+	/**

+	 * @see org.eclipse.emf.refactor.henshin.runtime.

+	 * HenshinInformationAdapter#getTransformationFileName()

+	 * @generated

+	 */

+	@Override

+	public String getTransformationFileName() {

+		String emtPath = "";

+		final Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);

+		try {

+			if (bundle != null) {

+    			emtPath = FileLocator.toFileURL

+       					(bundle.getEntry("transformation")).getFile();

+    			emtPath += this.transformationFileName;

+   			} else {

+    			emtPath = new File(".").getCanonicalPath()

+       									+ "\\transformation\\"

+       									+ this.transformationFileName;

+   			}

+		} catch (Exception e) {

+			e.printStackTrace();

+		}		

+		System.out.println(emtPath);

+		return emtPath;

+	}

+

+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest.java
new file mode 100644
index 0000000..22294f5
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringTest.java
@@ -0,0 +1,102 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringTestHenshin.javajet,v 1.2 2011/03/16 16:14:22 tarendt Exp $

+ */

+ 

+package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+

+import java.io.File;

+import java.io.FilenameFilter;

+import java.io.IOException;

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;

+import org.eclipse.emf.henshin.model.HenshinPackage;

+import org.eclipse.emf.refactor.refactoring.core.Refactoring;

+import org.eclipse.emf.refactor.refactoring.runtime.test.JUnitTestCaseAdapter;

+import org.eclipse.uml2.uml.UMLPackage;

+import org.junit.Test;

+import org.junit.runner.RunWith;

+import org.junit.runners.Parameterized;

+import org.junit.runners.Parameterized.Parameters;

+

+/**

+ * Class used for running individual JUnit test cases

+ * of the specific model refactoring.

+ * @generated

+ */

+@RunWith(value = Parameterized.class)

+public class RefactoringTest extends JUnitTestCaseAdapter {

+

+	/**

+	 * Number of test cases.

+	 * @generated

+	 */

+	private String number;

+

+	/**

+	 * Constructor implementation.

+	 * @param number Number of test cases.

+	 * @generated

+	 */

+	public RefactoringTest(String number) throws IOException {

+		super("de.unimarburg.swt.refactorings.uml.createassociatedclass",

+			"uml",

+			new File(".").getCanonicalPath(),

+			new Refactoring(null, "", "http://www.eclipse.org/uml2/3.0.0/UML", new RefactoringGuiHandler(), new RefactoringController()));

+		register(UMLPackage.eINSTANCE);

+		register(HenshinPackage.eINSTANCE);

+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("henshin", new XMIResourceFactoryImpl());

+		this.number = number;

+	}

+

+	@Parameters

+	public static Collection<Object[]> data() {

+		List<String> testNumbers = getTestNumbers();

+		Object[][] data = new Object[testNumbers.size()][1];

+		for (int i = 0; i < testNumbers.size(); i++) {

+			data[i][0] = testNumbers.get(i);

+		}

+		return Arrays.asList(data);

+	}

+	

+	private static List<String> getTestNumbers() {

+		List<String> numbers = new ArrayList<String>();

+		try {

+			String pathPrefix = new File(".").getCanonicalPath() + "/tests/" + "de.unimarburg.swt.refactorings.uml.createassociatedclass";

+			File testCaseDir = new File(pathPrefix,"/");

+			FilenameFilter filter = new FilenameFilter() {

+				public boolean accept(File dir, String name) {

+					return name.startsWith("test_");

+				}

+			};

+			String[] children = testCaseDir.list(filter);

+			if (children != null) {

+				for (String child : children) {

+					numbers.add(

+							child.substring(

+									child.indexOf('_') + 1));

+					}

+				}

+			} catch (IOException e) {

+				e.printStackTrace();

+			}

+		return numbers;

+	}

+	

+	/**

+	 * Runs the test.

+	 */

+	@Test

+	public void test(){

+		System.out.println("running test test_" + number);

+		executeTestCase(number);

+	}

+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizard.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizard.java
new file mode 100644
index 0000000..78405ff
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizard.java
@@ -0,0 +1,40 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringWizardHenshin.javajet,v 1.1 2010/07/15 13:09:58 tarendt Exp $

+ */

+ package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+import org.eclipse.emf.refactor.refactoring.interfaces.IController;

+import org.eclipse.emf.refactor.refactoring.runtime.ltk.ui.AbstractRefactoringWizard;

+

+/**

+ * Class used for providing an implementation of an LTK

+ * RefactoringWizard in EMF Refactor.

+ * @generated

+ */

+public class RefactoringWizard 

+    extends AbstractRefactoringWizard {

+	

+	/**

+	 * Default constructor implementation.

+	 * @param controller Controller of the EMF model refactoring.

+	 * @generated

+	 */					

+	public RefactoringWizard(IController controller) {

+		super(controller);

+	}

+

+	/**

+	 * @see org.eclipse.ltk.ui.refactoring.RefactoringWizard#

+	 * addUserInputPages()

+	 * @generated

+	 */

+	@Override

+	protected void addUserInputPages() {

+		addPage(new RefactoringWizardPage

+			(controller.getParent().getName(), (RefactoringController)controller));

+	}

+

+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizardPage.java b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizardPage.java
new file mode 100644
index 0000000..fefd6c5
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/src/org/eclipse/emf/refactor/refactorings/uml24/createassociatedclass/RefactoringWizardPage.java
@@ -0,0 +1,235 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id: RefactoringWizardPageHenshin.javajet,v 1.1 2010/07/15 13:09:58 tarendt Exp $

+ */

+ package org.eclipse.emf.refactor.refactorings.uml24.createassociatedclass;

+

+import java.util.List;

+

+import org.eclipse.emf.refactor.refactoring.runtime.ltk.ui.AbstractRefactoringWizard;

+import org.eclipse.emf.refactor.refactoring.runtime.ui.IInputPageButtonCreator;

+import org.eclipse.emf.refactor.refactoring.runtime.ui.InputPageButtonLoader;

+import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;

+import org.eclipse.swt.SWT;

+import org.eclipse.swt.layout.GridData;

+import org.eclipse.swt.layout.GridLayout;

+import org.eclipse.swt.widgets.Composite;

+import org.eclipse.swt.widgets.Event;

+import org.eclipse.swt.widgets.Label;

+import org.eclipse.swt.widgets.Listener;

+import org.eclipse.swt.widgets.Text;

+

+/**

+ * Class for setting model refactoring specific parameters

+ * by the user.

+ * @generated

+ */

+public class RefactoringWizardPage extends 

+				UserInputWizardPage implements Listener {

+				

+	/**

+	 * Controller of the EMF model refactoring.

+	 * @generated

+	 */			

+	private final RefactoringController controller;

+	

+	/**

+	 * Label for each parameter.

+	 * @generated

+	 */

+	private Label classNameLabel;

+	

+	/**

+	 * TextField for each parameter.

+	 * @generated

+	 */

+	private Text classNameWidget;

+	/**

+	 * Label for each parameter.

+	 * @generated

+	 */

+	private Label associationNameLabel;

+	

+	/**

+	 * TextField for each parameter.

+	 * @generated

+	 */

+	private Text associationNameWidget;

+	/**

+	 * Label for each parameter.

+	 * @generated

+	 */

+	private Label roleName1Label;

+	

+	/**

+	 * TextField for each parameter.

+	 * @generated

+	 */

+	private Text roleName1Widget;

+	/**

+	 * Label for each parameter.

+	 * @generated

+	 */

+	private Label roleName2Label;

+	

+	/**

+	 * TextField for each parameter.

+	 * @generated

+	 */

+	private Text roleName2Widget;

+

+	/**

+	 * Default constructor using a name and the controller of the 

+	 * EMF model refactoring.

+	 * @param name Name of the WizardPage.

+	 * @param controller Controller of the EMF model refactoring.

+	 * @generated

+	 */

+	public RefactoringWizardPage

+		(String name, RefactoringController controller) {

+		super(name);

+		this.controller = controller;

+	}

+

+	/**

+	 * @see org.eclipse.swt.widgets.Listener#

+	 * handleEvent(org.eclipse.swt.widgets.Event)

+	 * @generated

+	 */

+	@SuppressWarnings("unchecked")

+	@Override

+	public void handleEvent(Event event) {		

+		getWizard().getContainer().updateButtons();

+				

+		if (classNameWidget != null) {

+			String className = classNameWidget.getText();

+			if (!className.isEmpty()){

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("className").

+						setValue(className);

+			} else {

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("className").

+						setValue("unspecified");

+			}

+		}				

+		if (associationNameWidget != null) {

+			String associationName = associationNameWidget.getText();

+			if (!associationName.isEmpty()){

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("associationName").

+						setValue(associationName);

+			} else {

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("associationName").

+						setValue("unspecified");

+			}

+		}				

+		if (roleName1Widget != null) {

+			String roleName1 = roleName1Widget.getText();

+			if (!roleName1.isEmpty()){

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("roleName1").

+						setValue(roleName1);

+			} else {

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("roleName1").

+						setValue("unspecified");

+			}

+		}				

+		if (roleName2Widget != null) {

+			String roleName2 = roleName2Widget.getText();

+			if (!roleName2.isEmpty()){

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("roleName2").

+						setValue(roleName2);

+			} else {

+				((RefactoringDataManagement) 

+						this.controller.getDataManagementObject()).

+						getInPortByName("roleName2").

+						setValue("unspecified");

+			}

+		}

+

+	}

+	

+	/**

+	 * @see org.eclipse.jface.dialogs.IDialogPage#

+	 * createControl(org.eclipse.swt.widgets.Composite)

+	 * @generated

+	 */

+	@Override

+	public void createControl(Composite parent) {

+		Composite composite = new Composite(parent, SWT.NONE);

+		GridLayout gl = new GridLayout();

+		gl.numColumns = 2;

+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);

+		composite.setLayout(gl);

+			

+		

+		classNameLabel = new Label(composite, SWT.NONE);

+		classNameLabel.setText("Name of the new associated class: ");

+		classNameLabel.setEnabled(true);

+		

+		classNameWidget = new Text(composite, SWT.BORDER);

+		classNameWidget.setToolTipText

+				("value of variable 'className'");

+		classNameWidget.setEnabled(true);

+		classNameWidget.setLayoutData(gd);

+		classNameWidget.addListener(SWT.Modify, this);

+			

+		

+		associationNameLabel = new Label(composite, SWT.NONE);

+		associationNameLabel.setText("Name of the new association: ");

+		associationNameLabel.setEnabled(true);

+		

+		associationNameWidget = new Text(composite, SWT.BORDER);

+		associationNameWidget.setToolTipText

+				("value of variable 'associationName'");

+		associationNameWidget.setEnabled(true);

+		associationNameWidget.setLayoutData(gd);

+		associationNameWidget.addListener(SWT.Modify, this);

+			

+		

+		roleName1Label = new Label(composite, SWT.NONE);

+		roleName1Label.setText("Name of the new association end role: ");

+		roleName1Label.setEnabled(true);

+		

+		roleName1Widget = new Text(composite, SWT.BORDER);

+		roleName1Widget.setToolTipText

+				("value of variable 'roleName1'");

+		roleName1Widget.setEnabled(true);

+		roleName1Widget.setLayoutData(gd);

+		roleName1Widget.addListener(SWT.Modify, this);

+			

+		

+		roleName2Label = new Label(composite, SWT.NONE);

+		roleName2Label.setText("Name of the opposite association end role: ");

+		roleName2Label.setEnabled(true);

+		

+		roleName2Widget = new Text(composite, SWT.BORDER);

+		roleName2Widget.setToolTipText

+				("value of variable 'roleName2'");

+		roleName2Widget.setEnabled(true);

+		roleName2Widget.setLayoutData(gd);

+		roleName2Widget.addListener(SWT.Modify, this);

+		

+		List<IInputPageButtonCreator> buttonCreators = InputPageButtonLoader.iNSTANCE.getInputPageButtonCreatorClasses();

+		for(IInputPageButtonCreator creator : buttonCreators){

+			creator.createButton(composite, controller, (AbstractRefactoringWizard)this.getWizard());

+		}

+		

+		setControl(composite);

+	}

+	

+}

+	
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_check_1.henshin b/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_check_1.henshin
new file mode 100644
index 0000000..154747e
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_check_1.henshin
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_vVPIUKKuEeKVq9bLGfaZZA">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_u6a4cMf3EeC2vfRa3fN2tQ" description="This refactoring can only be applied on classes which are owned by a package!" name="check_isownedbyapackage">

+    <parameters xmi:id="_04VoYMf3EeC2vfRa3fN2tQ" name="selectedclass"/>

+    <lhs xmi:id="_u6a4ccf3EeC2vfRa3fN2tQ" name="LHS">

+      <nodes xmi:id="_IJr9QMf4EeC2vfRa3fN2tQ" name="selectedclass">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <formula xsi:type="henshin:Not" xmi:id="_h3Nc8KKuEeKVq9bLGfaZZA">

+        <child xsi:type="henshin:NestedCondition" xmi:id="_Zs5f4Mf5EeC2vfRa3fN2tQ">

+        	<conclusion xmi:id="_a4S8AMf5EeC2vfRa3fN2tQ">

+          	<nodes xmi:id="_cElwAMf5EeC2vfRa3fN2tQ" name="cl" incoming="_gg6KUMf5EeC2vfRa3fN2tQ">

+            	<type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+          	</nodes>

+          	<nodes xmi:id="_d94z8Mf5EeC2vfRa3fN2tQ" name="p" outgoing="_gg6KUMf5EeC2vfRa3fN2tQ">

+            	<type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+          	</nodes>

+          	<edges xmi:id="_gg6KUMf5EeC2vfRa3fN2tQ" source="_d94z8Mf5EeC2vfRa3fN2tQ" target="_cElwAMf5EeC2vfRa3fN2tQ">

+            	<type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+          	</edges>

+        	</conclusion>

+        	<mappings xmi:id="_kpizoMf5EeC2vfRa3fN2tQ" origin="_IJr9QMf4EeC2vfRa3fN2tQ" image="_cElwAMf5EeC2vfRa3fN2tQ"/>

+      	</child>

+      </formula>

+    </lhs>

+    <rhs xmi:id="_u6a4csf3EeC2vfRa3fN2tQ" name="RHS">

+      <nodes xmi:id="_nsJpAMf5EeC2vfRa3fN2tQ" name="selectedclass">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+    </rhs>

+    <mappings xmi:id="_nsJpAcf5EeC2vfRa3fN2tQ" origin="_IJr9QMf4EeC2vfRa3fN2tQ" image="_nsJpAMf5EeC2vfRa3fN2tQ"/>

+  </units>

+  <units xsi:type="henshin:SequentialUnit" xmi:id="_N2BN8Mf4EeC2vfRa3fN2tQ" name="mainUnit" subUnits="_u6a4cMf3EeC2vfRa3fN2tQ">

+    <parameters xmi:id="_PArDMMf4EeC2vfRa3fN2tQ" name="selectedEObject"/>

+    <parameterMappings xmi:id="_PLFG8Mf5EeC2vfRa3fN2tQ" source="_PArDMMf4EeC2vfRa3fN2tQ" target="_04VoYMf3EeC2vfRa3fN2tQ"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_check_2.henshin b/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_check_2.henshin
new file mode 100644
index 0000000..1b0d4cd
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_check_2.henshin
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_vVPIUKKuEeKVq9bLGfaZZA">

+  <units xsi:type="henshin:Rule" xmi:id="_u6a4cMf3EeC2vfRa3fN2tQ" description="The owning package contains an element with the given class name!" name="check_owningpackagedoesnotcontainclassname">

+    <parameters xmi:id="_04VoYMf3EeC2vfRa3fN2tQ" name="selectedclass1"/>

+    <parameters xmi:id="_5H-4oMf3EeC2vfRa3fN2tQ" name="classname1"/>

+    <lhs xmi:id="_u6a4ccf3EeC2vfRa3fN2tQ" name="LHS">

+      <nodes xmi:id="_IJr9QMf4EeC2vfRa3fN2tQ" name="selectedclass1" incoming="_HQMhwMf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_E7oeIMf-EeC2vfRa3fN2tQ" name="p1" outgoing="_HQMhwMf-EeC2vfRa3fN2tQ _gIzaEMf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_M_gN8Mf-EeC2vfRa3fN2tQ" name="pe" incoming="_gIzaEMf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//PackageableElement"/>

+        <attributes xmi:id="_Scxu8Mf-EeC2vfRa3fN2tQ" value="classname1">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <edges xmi:id="_HQMhwMf-EeC2vfRa3fN2tQ" source="_E7oeIMf-EeC2vfRa3fN2tQ" target="_IJr9QMf4EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_gIzaEMf-EeC2vfRa3fN2tQ" source="_E7oeIMf-EeC2vfRa3fN2tQ" target="_M_gN8Mf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_u6a4csf3EeC2vfRa3fN2tQ" name="RHS">

+      <nodes xmi:id="_m2GYgMf-EeC2vfRa3fN2tQ" name="selectedclass1" incoming="_m2GYhMf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_m2GYgcf-EeC2vfRa3fN2tQ" name="p1" outgoing="_m2GYhMf-EeC2vfRa3fN2tQ _m2GYhcf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_m2GYgsf-EeC2vfRa3fN2tQ" name="pe" incoming="_m2GYhcf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//PackageableElement"/>

+        <attributes xmi:id="_m2GYg8f-EeC2vfRa3fN2tQ" value="classname1">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <edges xmi:id="_m2GYhMf-EeC2vfRa3fN2tQ" source="_m2GYgcf-EeC2vfRa3fN2tQ" target="_m2GYgMf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_m2GYhcf-EeC2vfRa3fN2tQ" source="_m2GYgcf-EeC2vfRa3fN2tQ" target="_m2GYgsf-EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_m2GYhsf-EeC2vfRa3fN2tQ" origin="_IJr9QMf4EeC2vfRa3fN2tQ" image="_m2GYgMf-EeC2vfRa3fN2tQ"/>

+    <mappings xmi:id="_m2GYh8f-EeC2vfRa3fN2tQ" origin="_E7oeIMf-EeC2vfRa3fN2tQ" image="_m2GYgcf-EeC2vfRa3fN2tQ"/>

+    <mappings xmi:id="_m2GYiMf-EeC2vfRa3fN2tQ" origin="_M_gN8Mf-EeC2vfRa3fN2tQ" image="_m2GYgsf-EeC2vfRa3fN2tQ"/>

+  </units>

+  <units xsi:type="henshin:Rule" xmi:id="_5g45IMf9EeC2vfRa3fN2tQ" description="The owning package contains an element with the given association name!" name="check_owningpackagedoesnotcontainassociationname">

+    <parameters xmi:id="_5g45Icf9EeC2vfRa3fN2tQ" name="selectedclass2"/>

+    <parameters xmi:id="_5g45I8f9EeC2vfRa3fN2tQ" name="associationname2"/>

+    <lhs xmi:id="_5g45Jsf9EeC2vfRa3fN2tQ" name="LHS">

+      <nodes xmi:id="_5g45J8f9EeC2vfRa3fN2tQ" name="selectedclass2" incoming="_IYJL0Mf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_Bq2NYMf_EeC2vfRa3fN2tQ" name="p2" outgoing="_IYJL0Mf_EeC2vfRa3fN2tQ _JkId0Mf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_DX6zMMf_EeC2vfRa3fN2tQ" name="pe2" incoming="_JkId0Mf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//PackageableElement"/>

+        <attributes xmi:id="_FjZMQMf_EeC2vfRa3fN2tQ" value="associationname2">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <edges xmi:id="_IYJL0Mf_EeC2vfRa3fN2tQ" source="_Bq2NYMf_EeC2vfRa3fN2tQ" target="_5g45J8f9EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_JkId0Mf_EeC2vfRa3fN2tQ" source="_Bq2NYMf_EeC2vfRa3fN2tQ" target="_DX6zMMf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_5g45KMf9EeC2vfRa3fN2tQ" name="RHS">

+      <nodes xmi:id="_OxxnYMf_EeC2vfRa3fN2tQ" name="selectedclass2" incoming="_OxxnZMf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_OxxnYcf_EeC2vfRa3fN2tQ" name="p2" outgoing="_OxxnZMf_EeC2vfRa3fN2tQ _OxxnZcf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_OxxnYsf_EeC2vfRa3fN2tQ" name="pe2" incoming="_OxxnZcf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//PackageableElement"/>

+        <attributes xmi:id="_OxxnY8f_EeC2vfRa3fN2tQ" value="associationname2">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <edges xmi:id="_OxxnZMf_EeC2vfRa3fN2tQ" source="_OxxnYcf_EeC2vfRa3fN2tQ" target="_OxxnYMf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_OxxnZcf_EeC2vfRa3fN2tQ" source="_OxxnYcf_EeC2vfRa3fN2tQ" target="_OxxnYsf_EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_OxxnZsf_EeC2vfRa3fN2tQ" origin="_5g45J8f9EeC2vfRa3fN2tQ" image="_OxxnYMf_EeC2vfRa3fN2tQ"/>

+    <mappings xmi:id="_OxxnZ8f_EeC2vfRa3fN2tQ" origin="_Bq2NYMf_EeC2vfRa3fN2tQ" image="_OxxnYcf_EeC2vfRa3fN2tQ"/>

+    <mappings xmi:id="_OxxnaMf_EeC2vfRa3fN2tQ" origin="_DX6zMMf_EeC2vfRa3fN2tQ" image="_OxxnYsf_EeC2vfRa3fN2tQ"/>

+  </units>

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:IndependentUnit" xmi:id="_E4-BIMf9EeC2vfRa3fN2tQ" name="mainUnit" subUnits="_u6a4cMf3EeC2vfRa3fN2tQ _5g45IMf9EeC2vfRa3fN2tQ">

+    <parameters xmi:id="_GdZoUMf9EeC2vfRa3fN2tQ" name="selectedEObject"/>

+    <parameters xmi:id="_HaC2wMf9EeC2vfRa3fN2tQ" name="className"/>

+    <parameters xmi:id="_IbKVgMf9EeC2vfRa3fN2tQ" name="associationName"/>

+    <parameters xmi:id="_JOR0gMf9EeC2vfRa3fN2tQ" name="roleName1"/>

+    <parameters xmi:id="_KPidMMf9EeC2vfRa3fN2tQ" name="roleName2"/>

+    <parameterMappings xmi:id="_ttiKYMf-EeC2vfRa3fN2tQ" source="_GdZoUMf9EeC2vfRa3fN2tQ" target="_04VoYMf3EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_xr5dYMf-EeC2vfRa3fN2tQ" source="_HaC2wMf9EeC2vfRa3fN2tQ" target="_5H-4oMf3EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_RvLMoMf_EeC2vfRa3fN2tQ" source="_GdZoUMf9EeC2vfRa3fN2tQ" target="_5g45Icf9EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_U1OXkMf_EeC2vfRa3fN2tQ" source="_IbKVgMf9EeC2vfRa3fN2tQ" target="_5g45I8f9EeC2vfRa3fN2tQ"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_execute.henshin b/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_execute.henshin
new file mode 100644
index 0000000..63772a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.refactorings.uml24.henshin/transformation/create_associated_class_execute.henshin
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_vVPIUKKuEeKVq9bLGfaZZA">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_u6a4cMf3EeC2vfRa3fN2tQ" name="create_associated_class">

+    <parameters xmi:id="_04VoYMf3EeC2vfRa3fN2tQ" name="selectedclass"/>

+    <parameters xmi:id="_5H-4oMf3EeC2vfRa3fN2tQ" name="classname"/>

+    <parameters xmi:id="__XUvwMf3EeC2vfRa3fN2tQ" name="associationname"/>

+    <parameters xmi:id="_AqUosMf4EeC2vfRa3fN2tQ" name="rolename1"/>

+    <parameters xmi:id="_CCFs4Mf4EeC2vfRa3fN2tQ" name="rolename2"/>

+    <lhs xmi:id="_u6a4ccf3EeC2vfRa3fN2tQ" name="LHS">

+      <nodes xmi:id="_IJr9QMf4EeC2vfRa3fN2tQ" name="selectedclass" incoming="_WIUFMMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_UKjYAMgBEeC2vfRa3fN2tQ" name="p" outgoing="_WIUFMMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <edges xmi:id="_WIUFMMgBEeC2vfRa3fN2tQ" source="_UKjYAMgBEeC2vfRa3fN2tQ" target="_IJr9QMf4EeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_u6a4csf3EeC2vfRa3fN2tQ" name="RHS">

+      <nodes xmi:id="_aKQQoMgBEeC2vfRa3fN2tQ" name="selectedclass" incoming="_aKQQosgBEeC2vfRa3fN2tQ _RaenoMgCEeC2vfRa3fN2tQ" outgoing="_UTYwEOnQEeC32vd88H9SRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_aKQQocgBEeC2vfRa3fN2tQ" name="p" outgoing="_aKQQosgBEeC2vfRa3fN2tQ _folhkMgBEeC2vfRa3fN2tQ _qzsvIMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_bpensMgBEeC2vfRa3fN2tQ" name="cl" incoming="_folhkMgBEeC2vfRa3fN2tQ _5gabMMgBEeC2vfRa3fN2tQ" outgoing="_WiVT4OnQEeC32vd88H9SRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+        <attributes xmi:id="_ioEKcMgBEeC2vfRa3fN2tQ" value="classname">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <nodes xmi:id="_lrIS0MgBEeC2vfRa3fN2tQ" name="assoc" incoming="_qzsvIMgBEeC2vfRa3fN2tQ" outgoing="_8lZ2MMgBEeC2vfRa3fN2tQ _T3-k0MgCEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+        <attributes xmi:id="_nixw8MgBEeC2vfRa3fN2tQ" value="associationname">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <nodes xmi:id="_tm9g8MgBEeC2vfRa3fN2tQ" name="ae1" incoming="_8lZ2MMgBEeC2vfRa3fN2tQ _UTYwEOnQEeC32vd88H9SRg" outgoing="_5gabMMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+        <attributes xmi:id="_1xstwMgBEeC2vfRa3fN2tQ" value="rolename1">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <nodes xmi:id="_DJenMMgCEeC2vfRa3fN2tQ" name="ae2" incoming="_T3-k0MgCEeC2vfRa3fN2tQ _WiVT4OnQEeC32vd88H9SRg" outgoing="_RaenoMgCEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+        <attributes xmi:id="_GlkTkMgCEeC2vfRa3fN2tQ" value="rolename2">

+          <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>

+        </attributes>

+      </nodes>

+      <edges xmi:id="_aKQQosgBEeC2vfRa3fN2tQ" source="_aKQQocgBEeC2vfRa3fN2tQ" target="_aKQQoMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_folhkMgBEeC2vfRa3fN2tQ" source="_aKQQocgBEeC2vfRa3fN2tQ" target="_bpensMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_qzsvIMgBEeC2vfRa3fN2tQ" source="_aKQQocgBEeC2vfRa3fN2tQ" target="_lrIS0MgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_5gabMMgBEeC2vfRa3fN2tQ" source="_tm9g8MgBEeC2vfRa3fN2tQ" target="_bpensMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_RaenoMgCEeC2vfRa3fN2tQ" source="_DJenMMgCEeC2vfRa3fN2tQ" target="_aKQQoMgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_8lZ2MMgBEeC2vfRa3fN2tQ" source="_lrIS0MgBEeC2vfRa3fN2tQ" target="_tm9g8MgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/memberEnd"/>

+      </edges>

+      <edges xmi:id="_T3-k0MgCEeC2vfRa3fN2tQ" source="_lrIS0MgBEeC2vfRa3fN2tQ" target="_DJenMMgCEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/memberEnd"/>

+      </edges>

+      <edges xmi:id="_UTYwEOnQEeC32vd88H9SRg" source="_aKQQoMgBEeC2vfRa3fN2tQ" target="_tm9g8MgBEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+      </edges>

+      <edges xmi:id="_WiVT4OnQEeC32vd88H9SRg" source="_bpensMgBEeC2vfRa3fN2tQ" target="_DJenMMgCEeC2vfRa3fN2tQ">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_aKQQo8gBEeC2vfRa3fN2tQ" origin="_IJr9QMf4EeC2vfRa3fN2tQ" image="_aKQQoMgBEeC2vfRa3fN2tQ"/>

+    <mappings xmi:id="_aKQQpMgBEeC2vfRa3fN2tQ" origin="_UKjYAMgBEeC2vfRa3fN2tQ" image="_aKQQocgBEeC2vfRa3fN2tQ"/>

+  </units>

+  <units xsi:type="henshin:SequentialUnit" xmi:id="_N2BN8Mf4EeC2vfRa3fN2tQ" name="mainUnit" subUnits="_u6a4cMf3EeC2vfRa3fN2tQ">

+    <parameters xmi:id="_PArDMMf4EeC2vfRa3fN2tQ" name="selectedEObject"/>

+    <parameters xmi:id="_RwNLkMf4EeC2vfRa3fN2tQ" description="Name of the new associated class" name="className"/>

+    <parameters xmi:id="_ViysYMf4EeC2vfRa3fN2tQ" description="Name of the new association" name="associationName"/>

+    <parameters xmi:id="_Zfz7kMf4EeC2vfRa3fN2tQ" description="Name of the new association end role" name="roleName1"/>

+    <parameters xmi:id="_ergkYMf4EeC2vfRa3fN2tQ" description="Name of the opposite association end role" name="roleName2"/>

+    <parameterMappings xmi:id="_r6LlIMf4EeC2vfRa3fN2tQ" source="_RwNLkMf4EeC2vfRa3fN2tQ" target="_5H-4oMf3EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_UEyfgMgHEeC2vfRa3fN2tQ" source="_PArDMMf4EeC2vfRa3fN2tQ" target="_04VoYMf3EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_mIodQMf4EeC2vfRa3fN2tQ" source="_ViysYMf4EeC2vfRa3fN2tQ" target="__XUvwMf3EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_uCYAsMf4EeC2vfRa3fN2tQ" source="_Zfz7kMf4EeC2vfRa3fN2tQ" target="_AqUosMf4EeC2vfRa3fN2tQ"/>

+    <parameterMappings xmi:id="_wpaUYMf4EeC2vfRa3fN2tQ" source="_ergkYMf4EeC2vfRa3fN2tQ" target="_CCFs4Mf4EeC2vfRa3fN2tQ"/>

+  </units>

+</henshin:Module>