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>