Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortarendt2014-05-06 09:50:59 -0400
committertarendt2014-05-06 09:50:59 -0400
commit97d296c7255018237a016f025f13a2a91e0a724c (patch)
tree6adfa4db2faf2b4eea0dff94b5b9a3a76b24b530
parent367286361d4126e2a9bf9907d16a59c0c1048840 (diff)
downloadorg.eclipse.emf.refactor.refactoring-97d296c7255018237a016f025f13a2a91e0a724c.tar.gz
org.eclipse.emf.refactor.refactoring-97d296c7255018237a016f025f13a2a91e0a724c.tar.xz
org.eclipse.emf.refactor.refactoring-97d296c7255018237a016f025f13a2a91e0a724c.zip
bugs fixed
-rw-r--r--org.eclipse.emf.refactor.comrel.diagram/plugin.xml6
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF5
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/plugin.xml2
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java2
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/CoMReLDependenciesManager.java61
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelConfig.java81
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelGenerationManager.java310
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/CoMReLRefactoringWizardPage.java274
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/NewRefactoringWizardCoMReL.java110
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java26
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java55
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelMulti.javajet223
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelSingle.javajet220
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelMulti.javajet113
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelSingle.javajet90
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelMulti.javajet82
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelSingle.javajet80
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardComrel.javajet43
-rw-r--r--org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardPageComrel.javajet135
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/.gitignore1
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/AtomicUnit.classbin0 -> 767 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/CartesianQueuedUnit.classbin0 -> 737 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/CompositeRefactoring.classbin0 -> 2102 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/CompositeUnit.classbin0 -> 290 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ComrelFactory.classbin0 -> 2359 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage$Literals.classbin0 -> 14264 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage.classbin0 -> 19709 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ConditionCheck.classbin0 -> 275 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ConditionalUnit.classbin0 -> 645 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/DescribedElement.classbin0 -> 254 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/FeatureHelper.classbin0 -> 398 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/FeatureUnit.classbin0 -> 135 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/FilterHelper.classbin0 -> 236 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/FilterUnit.classbin0 -> 133 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/Helper.classbin0 -> 301 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/HelperUnit.classbin0 -> 411 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/InputPort.classbin0 -> 196 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MappingVisualization.classbin0 -> 3227 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ModelRefactoring.classbin0 -> 503 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureHelper.classbin0 -> 259 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureUnit.classbin0 -> 686 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterHelper.classbin0 -> 256 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterUnit.classbin0 -> 519 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiInputPort.classbin0 -> 164 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiOutputPort.classbin0 -> 167 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiPort.classbin0 -> 264 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiPortMapping.classbin0 -> 330 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/MultiSinglePortMapping.classbin0 -> 344 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/NamedElement.classbin0 -> 232 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/OutputPort.classbin0 -> 127 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/ParallelQueuedUnit.classbin0 -> 737 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/Port.classbin0 -> 472 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/PortMapping.classbin0 -> 609 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/QueuedUnit.classbin0 -> 209 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/RefactoringUnit.classbin0 -> 551 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SequentialUnit.classbin0 -> 689 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureHelper.classbin0 -> 263 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureUnit.classbin0 -> 694 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterHelper.classbin0 -> 260 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterUnit.classbin0 -> 527 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleInputPort.classbin0 -> 167 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleOutputPort.classbin0 -> 170 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SinglePort.classbin0 -> 212 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SinglePortMapping.classbin0 -> 336 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/SingleQueuedUnit.classbin0 -> 736 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/TwicedQueuedUnit.classbin0 -> 145 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFeatureHelper.classbin0 -> 262 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFilterHelper.classbin0 -> 259 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFeatureHelper.classbin0 -> 265 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFilterHelper.classbin0 -> 262 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/figures/InputPortFigure.classbin0 -> 2475 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/figures/OutputPortFigure.classbin0 -> 2479 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/figures/PortMappingFigure.classbin0 -> 714 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/AtomicUnitImpl.classbin0 -> 9434 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/CartesianQueuedUnitImpl.classbin0 -> 7570 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeRefactoringImpl.classbin0 -> 16481 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeUnitImpl.classbin0 -> 620 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelFactoryImpl.classbin0 -> 13360 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelPackageImpl.classbin0 -> 37655 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionCheckImpl.classbin0 -> 4524 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionalUnitImpl.classbin0 -> 7164 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureHelperImpl.classbin0 -> 4381 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureUnitImpl.classbin0 -> 605 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterHelperImpl.classbin0 -> 3330 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterUnitImpl.classbin0 -> 600 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperImpl.classbin0 -> 4869 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperUnitImpl.classbin0 -> 5181 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/InputPortImpl.classbin0 -> 822 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/ModelRefactoringImpl.classbin0 -> 6972 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureHelperImpl.classbin0 -> 3381 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureUnitImpl.classbin0 -> 8156 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterHelperImpl.classbin0 -> 3373 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterUnitImpl.classbin0 -> 7089 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiInputPortImpl.classbin0 -> 2086 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiOutputPortImpl.classbin0 -> 625 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortImpl.classbin0 -> 2539 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortMappingImpl.classbin0 -> 3840 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiSinglePortMappingImpl.classbin0 -> 3875 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/OutputPortImpl.classbin0 -> 594 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/ParallelQueuedUnitImpl.classbin0 -> 7570 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortImpl.classbin0 -> 6602 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortMappingImpl.classbin0 -> 7532 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/QueuedUnitImpl.classbin0 -> 2633 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/RefactoringUnitImpl.classbin0 -> 5746 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SequentialUnitImpl.classbin0 -> 6439 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureHelperImpl.classbin0 -> 3391 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureUnitImpl.classbin0 -> 8178 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterHelperImpl.classbin0 -> 3383 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterUnitImpl.classbin0 -> 7130 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleInputPortImpl.classbin0 -> 2092 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleOutputPortImpl.classbin0 -> 631 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortImpl.classbin0 -> 2622 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortMappingImpl.classbin0 -> 3853 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleQueuedUnitImpl.classbin0 -> 7931 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/impl/TwicedQueuedUnitImpl.classbin0 -> 631 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors$AttributedTextPane.classbin0 -> 1844 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors.classbin0 -> 4083 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory$1.classbin0 -> 15142 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory.classbin0 -> 5398 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelSwitch.classbin0 -> 19442 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil$ModelRefactoringComparator.classbin0 -> 1209 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil.classbin0 -> 4158 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/ExtensionPointInfo.classbin0 -> 924 bytes
-rw-r--r--org.eclipse.emf.refactor.comrel/bin/comrel/util/RegistryUtil.classbin0 -> 12245 bytes
-rw-r--r--org.eclipse.emf.refactor.refactoring.ocl/bin/.gitignore (renamed from org.eclipse.emf.refactor.refactoring.papyrus/bin/.gitignore)0
125 files changed, 1831 insertions, 88 deletions
diff --git a/org.eclipse.emf.refactor.comrel.diagram/plugin.xml b/org.eclipse.emf.refactor.comrel.diagram/plugin.xml
index 147f9ca..325f768 100644
--- a/org.eclipse.emf.refactor.comrel.diagram/plugin.xml
+++ b/org.eclipse.emf.refactor.comrel.diagram/plugin.xml
@@ -185,7 +185,7 @@
<extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor" id="prop-contrib">
<?gmfgen generated="true"?>
<propertyContributor
- contributorId="comrel.diagram"
+ contributorId="org.eclipse.emf.refactor.comrel.diagram"
labelProvider="comrel.diagram.sheet.ComrelSheetLabelProvider">
<propertyCategory category="domain"/>
<propertyCategory category="visual"/>
@@ -195,7 +195,7 @@
<extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs" id="proptabs">
<?gmfgen generated="true"?>
- <propertyTabs contributorId="comrel.diagram">
+ <propertyTabs contributorId="org.eclipse.emf.refactor.comrel.diagram">
<propertyTab
category="visual"
id="property.tab.AppearancePropertySection"
@@ -213,7 +213,7 @@
<extension point="org.eclipse.ui.views.properties.tabbed.propertySections" id="propsections">
<?gmfgen generated="true"?>
- <propertySections contributorId="comrel.diagram">
+ <propertySections contributorId="org.eclipse.emf.refactor.comrel.diagram">
<propertySection id="property.section.ConnectorAppearancePropertySection"
filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter"
class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection"
diff --git a/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF
index a8c9636..68e531a 100644
--- a/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF
+++ b/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF
@@ -10,7 +10,10 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.emf.ecore;bundle-version="2.6.1",
org.eclipse.emf.codegen;bundle-version="2.6.0",
org.eclipse.jdt.core;bundle-version="3.6.1",
- org.eclipse.emf.refactor.comrel;bundle-version="0.8.0"
+ org.eclipse.emf.refactor.comrel;bundle-version="0.8.0",
+ org.eclipse.emf.refactor.refactoring.generator;bundle-version="0.9.0",
+ org.eclipse.emf.refactor.refactoring;bundle-version="0.9.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.eclipse.ui.actions
+Export-Package: comrel.generator.helper
diff --git a/org.eclipse.emf.refactor.comrel.generator/plugin.xml b/org.eclipse.emf.refactor.comrel.generator/plugin.xml
index 8af7dd0..bb37a25 100644
--- a/org.eclipse.emf.refactor.comrel.generator/plugin.xml
+++ b/org.eclipse.emf.refactor.comrel.generator/plugin.xml
@@ -38,7 +38,7 @@
</wizard>
<wizard
category="org.eclipse.emf.refactor.newwizards.category/comrel.generator.category"
- class="comrel.generator.refactoring.wizards.RefactoringWizard"
+ class="comrel.generator.refactoring.wizards.NewRefactoringWizardCoMReL"
icon="icons/refactoring.jpg"
id="comrel.generator.wizard.refactoring"
name="Refactoring (specified in CoMReL)">
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java
index 1b79811..adb1e60 100644
--- a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java
@@ -38,7 +38,7 @@ public class HelperGenerator {
private final String JETEMITTERS = ".JETEmitters";
private final String JAVA = ".java";
private final String JAVAJET = ".javajet";
- private final String COMRELMODEL = "comrel";
+ private final String COMRELMODEL = "org.eclipse.emf.refactor.comrel";
private final String REQUIREBUNDLE = "Require-Bundle";
private final String BUNDLESYMBOLICNAME = "Bundle-SymbolicName";
private final String BUNDLEVERSION = "Bundle-Version";
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/CoMReLDependenciesManager.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/CoMReLDependenciesManager.java
new file mode 100644
index 0000000..8a38fe1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/CoMReLDependenciesManager.java
@@ -0,0 +1,61 @@
+package comrel.generator.refactoring;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.refactor.refactoring.generator.core.RefactoringInfo;
+import org.eclipse.emf.refactor.refactoring.generator.managers.DependenciesManager;
+
+public class CoMReLDependenciesManager extends DependenciesManager {
+
+ private static final String REFACTORCOMREL = "org.eclipse.emf.refactor.comrel";
+ private static final String COMRELINTERPRETER = "org.eclipse.emf.refactor.comrel.interpreter";
+
+ public static void updateDependencies(RefactoringInfo info) {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(info.getProjectName());
+ try {
+ String fileName = project.getLocation().append(MANIFEST_FILE)
+ .toOSString();
+ FileInputStream is = new FileInputStream(fileName);
+ Manifest mf = new Manifest(is);
+ Attributes att = mf.getMainAttributes();
+ String value = att.getValue(REQUIREBUNDLE);
+ if (! value.contains(EXPRESSIONS))
+ value = value + "," + EXPRESSIONS;
+ if (! value.contains(ECORE))
+ value = value + "," + ECORE;
+ if (! value.contains(ECORECHANGE))
+ value = value + "," + ECORECHANGE;
+ if (! value.contains(LTKCORE))
+ value = value + "," + LTKCORE;
+ if (! value.contains(LTKUI))
+ value = value + "," + LTKUI;
+ if (! value.contains(REFACTORCOMMON))
+ value = value + "," + REFACTORCOMMON;
+ if (! value.contains(REFACTORRUNTIME))
+ value = value + "," + REFACTORRUNTIME;
+ if (! value.contains(REFACTORCOMREL))
+ value = value + "," + REFACTORCOMREL;
+ if (! value.contains(COMRELINTERPRETER))
+ value = value + "," + COMRELINTERPRETER;
+ if (! value.contains(JUNIT))
+ value = value + "," + JUNIT + ";bundle-version=\"4.8.1\"";
+ if (! value.contains(info.getJar()))
+ value = value + "," + info.getJar();
+ att.putValue(REQUIREBUNDLE, value);
+ FileOutputStream out = new FileOutputStream(fileName);
+ mf.write(out);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelConfig.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelConfig.java
new file mode 100644
index 0000000..5f43436
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelConfig.java
@@ -0,0 +1,81 @@
+package comrel.generator.refactoring;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.refactor.refactoring.generator.core.ParameterInfo;
+import org.eclipse.emf.refactor.refactoring.generator.core.RefactoringInfo;
+
+import comrel.CompositeRefactoring;
+import comrel.InputPort;
+
+public class ComrelConfig extends RefactoringInfo {
+
+ public static final String COMRELDIR = "/comrelmodels/";
+ public static final String COMRELEXT = ".comrel";
+
+ private static final String SELECTEDEOBJECT = "selectedEObject";
+ private static final String SELECTEDEOBJECTS = "selectedEObjects";
+
+ private boolean multi = false;
+ private String comrelModel;
+
+ public ComrelConfig(CompositeRefactoring cr, IProject project, String comrelModel) {
+ super(project.getName(), cr.getRefId(),
+ cr.getLabel(), cr.getNamespaceUri());
+ this.comrelModel = comrelModel;
+ this.init(cr);
+ }
+
+ public boolean isMulti() {
+ return multi;
+ }
+
+ public String getComrelModel() {
+ return comrelModel;
+ }
+
+ private void init(CompositeRefactoring cr) {
+ List<InputPort> ips = cr.getMainRefactoringUnit().getAllInputPorts();
+ for (InputPort ip : ips) {
+ if (ip.getName().equals(SELECTEDEOBJECTS)) multi = true;
+ if (ip.getName().equals(SELECTEDEOBJECT)
+ || ip.getName().equals(SELECTEDEOBJECTS)) {
+ setSelectedEObjectClass(ip.getType().getName());
+ setSelectedEObjectJar(ip.getType().getPackage().getName());
+ } else {
+ ParameterInfo pi = new ParameterInfo(ip.getName());
+ if (ip.getDescription() != null) {
+ pi.setDescription(ip.getDescription());
+ }
+ this.getParameters().add(pi);
+ }
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "ComrelConfig \n [projectName=" + projectName
+ + ", \n getParameters()=" + getParameterString()
+ + ", \n getProjectName()=" + getProjectName()
+ + ", \n getRefactoringId()=" + getRefactoringId()
+ + ", \n getMenuLabel()=" + getMenuLabel() + ", \n getNamespaceUri()="
+ + getNamespaceUri() + ", \n getSelectedEObjectClass()="
+ + getSelectedEObjectClass() + ", \n getSelectedEObjectJar()="
+ + getJar() + ", \n getGuiHandler()="
+ + getGuiHandler() + ", \n getController()=" + getController()
+ + ", \n getPackageName()=" + getPackageName() + ", \n getClass()="
+ + getClass() + ", \n hashCode()=" + hashCode() + ", \n toString()="
+ + super.toString() + "]";
+ }
+
+ private String getParameterString() {
+ String ret = "";
+ for (ParameterInfo pi : getParameters()) {
+ ret += " " + pi.getName() + ":" + pi.getDescription() + ";";
+ }
+ return ret;
+ }
+
+}
+
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelGenerationManager.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelGenerationManager.java
new file mode 100644
index 0000000..b7307a8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/ComrelGenerationManager.java
@@ -0,0 +1,310 @@
+package comrel.generator.refactoring;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.emf.codegen.jet.JETEmitter;
+import org.eclipse.emf.codegen.jet.JETException;
+import org.eclipse.emf.codegen.util.CodeGenUtil;
+import org.eclipse.emf.refactor.refactoring.generator.core.RefactoringInfo;
+import org.eclipse.emf.refactor.refactoring.generator.managers.XMLPluginFileManager;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+import org.osgi.framework.Bundle;
+
+import comrel.generator.Activator;
+
+public class ComrelGenerationManager {
+
+ private final String REFACTORINGGUIHANDLERCOMRELSINGLE =
+ "RefactoringGuiHandlerComrelSingle";
+ private final String REFACTORINGGUIHANDLERCOMRELMULTI =
+ "RefactoringGuiHandlerComrelMulti";
+ private final String REFACTORINGWIZARDCOMREL =
+ "RefactoringWizardComrel";
+ private final String REFACTORINGWIZARDPAGECOMREL =
+ "RefactoringWizardPageComrel";
+ private final String REFACTORINGDATAMANAGEMENTCOMRELSINGLE =
+ "RefactoringDataManagementComrelSingle";
+ private final String REFACTORINGDATAMANAGEMENTCOMRELMULTI =
+ "RefactoringDataManagementComrelMulti";
+ private final String REFACTORINGCONTROLLERCOMRELSINGLE =
+ "RefactoringControllerComrelSingle";
+ private final String REFACTORINGCONTROLLERCOMRELMULTI =
+ "RefactoringControllerComrelMulti";
+
+ private final String REFACTORINGWIZARD = "RefactoringWizard";
+ private final String REFACTORINGWIZARDPAGE =
+ "RefactoringWizardPage";
+ private final String REFACTORINGGUIHANDLER =
+ "RefactoringGuiHandler";
+ private final String REFACTORINGCONTROLLER =
+ "RefactoringController";
+ private final String REFACTORINGDATAMANAGEMENT =
+ "RefactoringDataManagement";
+
+ private final String BUNDLEVERSION = "Bundle-Version";
+ private final String BUNDLESYMBOLICNAME = "Bundle-SymbolicName";
+ private final String SINGLETONTRUE = "singleton:=true";
+ private final String PLUGINSPATH =
+ Platform.getInstallLocation().getURL().getPath() + "plugins/";
+ private final String JETEMITTERS = ".JETEmitters";
+ private final String JAVA = ".java";
+ private final String JAVAJET = ".javajet";
+ private final String TEMPLATES = "templates";
+
+ /**
+ * Configuration data used for generating model refactoring code.
+ */
+ private ComrelConfig config;
+
+ /**
+ * Full qualified name of the template directory inside the plugin.
+ */
+ private String templateDirectory;
+
+ /**
+ * Classpath entries needed for compiling JET code.
+ */
+ private List<IClasspathEntry> classpathEntries;
+
+ /**
+ * JETEmitter instance used for code generation.
+ */
+ private JETEmitter jetEmitter;
+
+ public ComrelGenerationManager(ComrelConfig config) {
+ this.config = config;
+ this.templateDirectory = setNewTemplateDirectory();
+ classpathEntries = setClassPathEntries();
+ System.out.println("ComrelGenerationManager initialized!");
+ }
+
+ protected List<IClasspathEntry> setClassPathEntries() {
+ List<IClasspathEntry> cpe = new ArrayList<IClasspathEntry>();
+ Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+ // add org.eclipse.emf.refactor.comrel.generator to class path
+ String version = (String) bundle.getHeaders().get(BUNDLEVERSION);
+ cpe.add(JavaCore.newLibraryEntry(new Path(PLUGINSPATH +
+ Activator.PLUGIN_ID + "_" + version + ".jar"), null, null));
+ // add org.eclipse.emf.refactor.refactoring.generator to class path
+ bundle = Platform.getBundle(org.eclipse.emf.refactor.refactoring.generator.Activator.PLUGIN_ID);
+ version = (String) bundle.getHeaders().get(BUNDLEVERSION);
+ cpe.add(JavaCore.newLibraryEntry(new Path(PLUGINSPATH
+ + org.eclipse.emf.refactor.refactoring.generator.Activator.PLUGIN_ID + "_" + version + ".jar"), null, null));
+ // add org.eclipse.emf.refactor.refactoring to class path
+ bundle = Platform.getBundle(org.eclipse.emf.refactor.refactoring.Activator.PLUGIN_ID);
+ version = (String) bundle.getHeaders().get(BUNDLEVERSION);
+ cpe.add(JavaCore.newLibraryEntry(new Path(PLUGINSPATH +
+ org.eclipse.emf.refactor.refactoring.Activator.PLUGIN_ID + "_" + version + ".jar"), null, null));
+ return cpe;
+ }
+
+ public void run(IProgressMonitor monitor) {
+ deleteJetEmittersProject(monitor);
+ updatePluginXml();
+ CoMReLDependenciesManager.updateDependencies(config);
+ setSingletonDirective();
+ generateCode(monitor);
+ }
+
+ private void generateCode(IProgressMonitor monitor) {
+ String generatedCode = "";
+ try {
+ if (config.isMulti()) {
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGGUIHANDLERCOMRELMULTI);
+ this.save(monitor, generatedCode, REFACTORINGGUIHANDLER);
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGDATAMANAGEMENTCOMRELMULTI);
+ this.save(monitor, generatedCode, REFACTORINGDATAMANAGEMENT);
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGCONTROLLERCOMRELMULTI);
+ this.save(monitor, generatedCode, REFACTORINGCONTROLLER);
+ } else {
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGGUIHANDLERCOMRELSINGLE);
+ this.save(monitor, generatedCode, REFACTORINGGUIHANDLER);
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGDATAMANAGEMENTCOMRELSINGLE);
+ this.save(monitor, generatedCode, REFACTORINGDATAMANAGEMENT);
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGCONTROLLERCOMRELSINGLE);
+ this.save(monitor, generatedCode, REFACTORINGCONTROLLER);
+ }
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGWIZARDCOMREL);
+ this.save(monitor, generatedCode, REFACTORINGWIZARD);
+ generatedCode =
+ this.generateCode(monitor, REFACTORINGWIZARDPAGECOMREL);
+ this.save(monitor, generatedCode, REFACTORINGWIZARDPAGE);
+ } catch (JETException e) {
+ e.printStackTrace();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Saves the given content in a file with the given name.
+ * @param monitor Object for monitoring the saving activity.
+ * @param content Content to be saved in a file with the given name.
+ * @param fileName Name of the file the content has to be saved in.
+ * @throws CoreException Exception that can be thrown.
+ * @throws JETException Exception that can be thrown.
+ */
+ protected void save
+ (IProgressMonitor monitor, String content, String fileName)
+ throws CoreException, JETException {
+ IContainer container = findOrCreatePackage(monitor);
+ if (container == null) {
+ throw new JETException
+ ("Cound not find or create container for package "
+ + this.config.getPackageName() + " in "
+ + this.config.getProjectName());
+ }
+ IFile file = container.getFile(new Path(fileName + JAVA));
+ InputStream inputStream =
+ new ByteArrayInputStream(content.getBytes());
+ if (!file.exists()) {
+ file.create(inputStream, false, monitor);
+ } else {
+ container.refreshLocal(1, monitor);
+ file.setContents(inputStream, true, false, monitor);
+ }
+ }
+
+ /**
+ * Finds or creates the package the code has to be located to.
+ * @param progressMonitor Object for monitoring the activity.
+ * @return Package the code has to be located to.
+ * @throws CoreException Exception that can be thrown.
+ */
+ private IContainer findOrCreatePackage(IProgressMonitor progressMonitor)
+ throws CoreException {
+ IPath outputPath = new Path
+ (this.config.getProjectName() + "/src/"
+ + this.config.getPackageName().replace('.', '/'));
+ IProgressMonitor subMonitor =
+ new SubProgressMonitor(progressMonitor, 1);
+ IPath localLocation = null;
+ IContainer container =
+ CodeGenUtil.EclipseUtil.findOrCreateContainer
+ (outputPath, true, localLocation, subMonitor);
+ return container;
+ }
+
+ private String generateCode(IProgressMonitor monitor, String template) {
+ String templatePath = this.templateDirectory + template + JAVAJET;
+ ClassLoader classLoader = getClass().getClassLoader();
+ this.jetEmitter = new JETEmitter(templatePath, classLoader);
+ this.jetEmitter.getClasspathEntries().addAll(classpathEntries);
+ String result = "";
+ IProgressMonitor sub = new SubProgressMonitor(monitor, 1);
+ try {
+ result =
+ jetEmitter.generate(sub, new Object[] { this.config });
+ } catch (JETException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ /**
+ * Sets the singleton directive of the plugin to true.
+ */
+ protected void setSingletonDirective() {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(this.config.getProjectName());
+ try {
+ String fileName = project.getLocation()
+ .append("/META-INF/MANIFEST.MF")
+ .toOSString();
+ FileInputStream is = new FileInputStream(fileName);
+ Manifest mf = new Manifest(is);
+ Attributes att = mf.getMainAttributes();
+ String value = att.getValue(BUNDLESYMBOLICNAME);
+ if (! value.contains(SINGLETONTRUE))
+ value = value + ";" + SINGLETONTRUE;
+ att.putValue(BUNDLESYMBOLICNAME, value);
+ FileOutputStream out = new FileOutputStream(fileName);
+ mf.write(out);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Updates the plugin.xml file by adding the generated model refactoring
+ * to served extension points.
+ */
+ protected void updatePluginXml() {
+ List<RefactoringInfo> refactoringConfig =
+ XMLPluginFileManager.getRefactoringConfig
+ (this.config.getProjectName());
+ refactoringConfig.add(this.config);
+ XMLPluginFileManager.saveRefactoringConfig
+ (this.config.getProjectName(), refactoringConfig);
+ }
+
+ /**
+ * Deletes the .JETEmitters project used for model refactoring
+ * code generation.
+ * @param monitor Object for monitoring the deleting activity.
+ */
+ protected void deleteJetEmittersProject(IProgressMonitor monitor) {
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ IResource r = root.findMember(JETEMITTERS);
+ System.out.println("IResoure: "+ r.getName());
+ if (r != null){
+ r.delete(IResource.ALWAYS_DELETE_PROJECT_CONTENT, monitor);
+// r.delete(false, monitor);
+ }
+ }
+ catch (CoreException e) { }
+ catch (Exception e) { }
+ }
+
+ private String setNewTemplateDirectory() {
+ String td = "";
+ final Bundle bundle = Activator.getDefault().getBundle();
+ try {
+ td = FileLocator.toFileURL(bundle.getEntry(TEMPLATES)).getFile();
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ return td;
+ }
+
+ @Override
+ public String toString() {
+ return "ComrelGenerationManager [config=" + config + ", templateDirectory="
+ + templateDirectory + ", classpathEntries=" + classpathEntries
+ + "]";
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/CoMReLRefactoringWizardPage.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/CoMReLRefactoringWizardPage.java
new file mode 100644
index 0000000..e63749c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/CoMReLRefactoringWizardPage.java
@@ -0,0 +1,274 @@
+package comrel.generator.refactoring.wizards;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.LinkedList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectNature;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+
+import comrel.generator.refactoring.ComrelConfig;
+
+public class CoMReLRefactoringWizardPage extends WizardPage implements Listener, SelectionListener {
+
+ private Combo comboProject;
+ private Combo comboFile;
+ private Button btnImport;
+
+ private LinkedList<IProject> projects;
+ private final String PLUGINNATURE = "org.eclipse.pde.PluginNature";
+ private String[] projectNames;
+
+ private File[] comrelFiles;
+ private String[] comrelFileNames;
+
+ private IProject project;
+ private String comrelFileName;
+
+ /**
+ * Create the wizard.
+ */
+ public CoMReLRefactoringWizardPage() {
+ super("CoMReLRefactoringWizardPage");
+ setTitle("CoMReL - project and model selection");
+ setDescription("Please select a plug-in project and an appropriate CoMReL model.");
+ initProjects();
+ }
+
+ public IProject getProject() {
+ return project;
+ }
+
+ public String getComrelFileName() {
+ return comrelFileName;
+ }
+
+ private void initProjects() {
+ this.projects = new LinkedList<IProject>();
+ IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ for (IProject project : allProjects) {
+ if (project.isOpen()) {
+ IProjectNature nature = null;
+ try {
+ nature = project.getNature(PLUGINNATURE);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ if (null != nature)
+ this.projects.add(project);
+ }
+ }
+ }
+
+ /**
+ * Create contents of the wizard.
+ * @param parent
+ */
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+
+ setControl(container);
+ container.setLayout(new GridLayout(3, false));
+
+ Label lblEclipsePluginProject = new Label(container, SWT.NONE);
+ lblEclipsePluginProject.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblEclipsePluginProject.setText("Eclipse plug-in project:");
+
+ comboProject = new Combo(container, SWT.NONE);
+ comboProject.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ Label lblNewLabel = new Label(container, SWT.NONE);
+ lblNewLabel.setText("");
+
+ Label lblComrelModelFile = new Label(container, SWT.NONE);
+ lblComrelModelFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblComrelModelFile.setText("CoMReL model file:");
+
+ comboFile = new Combo(container, SWT.NONE);
+ comboFile.setEnabled(false);
+ comboFile.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ btnImport = new Button(container, SWT.NONE);
+ btnImport.setEnabled(false);
+ btnImport.setText("import");
+
+ setProjectCombo();
+ comboProject.addListener(SWT.Modify, this);
+ comboFile.addListener(SWT.Modify, this);
+ btnImport.addSelectionListener(this);
+
+ this.setPageComplete(false);
+ }
+
+ private void setProjectCombo() {
+ if (projects.isEmpty()) {
+ this.setMessage("There is no open plug-in project in the current workspace!", ERROR);
+ comboProject.setEnabled(false);
+ } else {
+ projectNames = new String[projects.size()];
+ for (int i = 0; i < projectNames.length; i++) {
+ projectNames[i] = projects.get(i).getName();
+ }
+ comboProject.setItems(projectNames);
+ }
+ }
+
+ @Override
+ public void handleEvent(Event event) {
+ if (event.widget == comboProject) {
+ setProject(comboProject.getSelectionIndex());
+ }
+ if (event.widget == comboFile) {
+ setComrelFile(comboFile.getSelectionIndex());
+ }
+ }
+
+ private void setComrelFile(int index) {
+ if (index == -1) {
+ comrelFileName = null;
+ this.setPageComplete(false);
+ this.setMessage("Please select or import the corresponding CoMReL model.");
+ } else {
+ comrelFileName = comrelFileNames[index];
+ this.setPageComplete(true);
+ this.setMessage("Please select a plug-in project and an appropriate CoMReL model.");
+ }
+ }
+
+ private void setProject(int index) {
+ if (index == -1) {
+ project = null;
+ } else {
+ project = projects.get(index);
+ comboProject.setEnabled(false);
+ loadComrelFiles();
+ setComrelCombo();
+ }
+ }
+
+ private void setComrelCombo() {
+ if (comrelFiles != null) {
+ comrelFileNames = new String[comrelFiles.length];
+ for (int i = 0; i < comrelFiles.length; i++) {
+ comrelFileNames[i] = comrelFiles[i].getName();
+ }
+ comboFile.setItems(comrelFileNames);
+ comboFile.setEnabled(true);
+ btnImport.setEnabled(true);
+ this.setMessage("Please select or import the corresponding CoMReL model.");
+ }
+ }
+
+ private void loadComrelFiles() {
+ String path = project.getLocationURI().getPath() + ComrelConfig.COMRELDIR;
+ File file = new File(path);
+ if (! file.exists()) {
+ file.mkdirs();
+ }
+ FileFilter ff = new FileFilter() {
+ @Override
+ public boolean accept(File pathname) {
+ if (pathname.getName().endsWith(ComrelConfig.COMRELEXT)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ };
+ comrelFiles = file.listFiles(ff);
+ }
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ FileDialog fd = new FileDialog(this.getShell(), SWT.OPEN);
+ fd.setText("Select CoMReL model");
+ fd.setFilterPath(project.getLocation().toString());
+ String[] filterExt = { "*" + ComrelConfig.COMRELEXT };
+ fd.setFilterExtensions(filterExt);
+ String selected = fd.open();
+ if (selected != null)
+ if (!selected.isEmpty()) {
+ selected = selected.replace('\\', '/');
+ int i = selected.lastIndexOf("/");
+ String name = selected.substring(i + 1);
+ String destination = project.getLocationURI().getPath() + ComrelConfig.COMRELDIR;
+ copyFile(selected, destination, name);
+ File f = new File(selected);
+ if (comrelFiles == null) {
+ comrelFiles = new File[] {f};
+ comrelFileNames = new String[] {name};
+ } else {
+ File[] fileTemp = new File[comrelFiles.length + 1];
+ String[] nameTemp = new String[comrelFiles.length + 1];
+ for (int j = 0; j < comrelFiles.length; j++) {
+ fileTemp[j] = comrelFiles[j];
+ nameTemp[j] = comrelFileNames[j];
+ }
+ fileTemp[comrelFiles.length] = f;
+ nameTemp[comrelFiles.length] = name;
+ comrelFiles = fileTemp;
+ comrelFileNames = nameTemp;
+ }
+ comboFile.setItems(comrelFileNames);
+ }
+ }
+
+ public static void copyFile(String target, String destination, String name) {
+ File file = new File(destination);
+ if (! file.exists()) {
+ file.mkdirs();
+ }
+ File newFile = new File(destination + name);
+ try {
+ newFile.createNewFile();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ copy(target, destination + name);
+ }
+
+ public static void copy(String filePath, String newFilePath) {
+ try {
+ BufferedInputStream is = new BufferedInputStream(
+ new FileInputStream(filePath));
+ new File(newFilePath).createNewFile();
+ BufferedOutputStream os = new BufferedOutputStream(
+ new FileOutputStream(newFilePath));
+ int b;
+ while ((b = is.read()) != -1) {
+ os.write(b);
+ }
+ is.close();
+ os.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) { }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/NewRefactoringWizardCoMReL.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/NewRefactoringWizardCoMReL.java
new file mode 100644
index 0000000..ac2485b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/NewRefactoringWizardCoMReL.java
@@ -0,0 +1,110 @@
+package comrel.generator.refactoring.wizards;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import comrel.CompositeRefactoring;
+import comrel.generator.refactoring.ComrelConfig;
+import comrel.generator.refactoring.ComrelGenerationManager;
+
+public class NewRefactoringWizardCoMReL extends Wizard
+ implements INewWizard {
+
+ private final String WINDOW_TITLE = "New Composite EMF Model Refactoring";
+
+ /**
+ * Wizard page for specifying the CoMReL file to
+ * be used for executing the EMF model refactoring.
+ */
+ private CoMReLRefactoringWizardPage comrelWizardPage;
+
+ public NewRefactoringWizardCoMReL() { }
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) { }
+
+ @Override
+ public void addPages() {
+ setWindowTitle(WINDOW_TITLE);
+ this.comrelWizardPage = new CoMReLRefactoringWizardPage();
+ this.addPage(comrelWizardPage);
+ }
+
+ @Override
+ public boolean performFinish() {
+
+ WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+ protected void execute(IProgressMonitor monitor)
+ throws CoreException, InvocationTargetException,
+ InterruptedException {
+ try {
+ createComrelRefactoring(monitor);
+ } finally {
+ monitor.done();
+ }
+ }
+ };
+ try {
+ IWizardContainer container = getContainer();
+ if (container != null) {
+ container.run(false, false, op);
+ }
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return true;
+
+ }
+
+ protected void createComrelRefactoring(IProgressMonitor monitor) {
+ System.out.println("Generate EMF Model Refactoring");
+ System.out.println("Project: " + comrelWizardPage.getProject());
+ System.out.println("CoMReL: " + comrelWizardPage.getComrelFileName());
+ CompositeRefactoring cr = loadComrelModel();
+ // TODO test cr
+ ComrelConfig config = new ComrelConfig(
+ cr,
+ comrelWizardPage.getProject(),
+ comrelWizardPage.getComrelFileName());
+ System.out.println(config.toString());
+ ComrelGenerationManager generationManager = new ComrelGenerationManager(config);
+ System.out.println(generationManager.toString());
+ generationManager.run(monitor);
+ }
+
+ private CompositeRefactoring loadComrelModel() {
+ String path = comrelWizardPage.getProject().getLocationURI().getPath()
+ + ComrelConfig.COMRELDIR + comrelWizardPage.getComrelFileName();
+ URI uri = URI.createFileURI(new File(path).getAbsolutePath());
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(uri);
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return (CompositeRefactoring) resource.getContents().get(0);
+ }
+
+ @Override
+ public boolean canFinish() {
+ return comrelWizardPage.isPageComplete();
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java
deleted file mode 100644
index 55db048..0000000
--- a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package comrel.generator.refactoring.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-public class RefactoringWizard extends Wizard implements INewWizard {
-
- public RefactoringWizard() {
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public boolean performFinish() {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java
deleted file mode 100644
index 9bdb9ea..0000000
--- a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package comrel.generator.refactoring.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-
-public class RefactoringWizardPage extends WizardPage {
-
- /**
- * Create the wizard.
- */
- public RefactoringWizardPage() {
- super("wizardPage");
- setTitle("Wizard Page title");
- setDescription("Wizard Page description");
- }
-
- /**
- * Create contents of the wizard.
- * @param parent
- */
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
-
- setControl(container);
- container.setLayout(new GridLayout(3, false));
-
- Label lblEclipsePluginProject = new Label(container, SWT.NONE);
- lblEclipsePluginProject.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- lblEclipsePluginProject.setText("Eclipse plug-in project:");
-
- Combo comboProject = new Combo(container, SWT.NONE);
- comboProject.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-
- Label lblNewLabel = new Label(container, SWT.NONE);
-
- Label lblComrelModelFile = new Label(container, SWT.NONE);
- lblComrelModelFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- lblComrelModelFile.setText("CoMReL model file:");
-
- Combo comboFile = new Combo(container, SWT.NONE);
- comboFile.setEnabled(false);
- comboFile.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-
- Button btnImport = new Button(container, SWT.NONE);
- btnImport.setEnabled(false);
- btnImport.setText("import");
- }
-
-}
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelMulti.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelMulti.javajet
new file mode 100644
index 0000000..09b6496
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelMulti.javajet
@@ -0,0 +1,223 @@
+<%@ jet package="comrel.refactoring" class="RefactoringController"
+imports="org.eclipse.emf.refactor.refactoring.generator.core.* comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringController.javajet,v 1.3 2011/01/21 13:08:06 tarendt Exp $
+ */
+package <%=refactoringConfig.getPackageName()%>;
+
+import <%=refactoringConfig.getPackageName()%>.RefactoringDataManagement.ContextList;
+
+import comrel.InputPort;
+import comrel.MultiInputPort;
+import comrel.RefactoringUnit;
+import comrel.SingleInputPort;
+import comrel.interpreter.ComrelInterpreter;
+
+import java.io.IOException;
+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.interfaces.IController;
+import org.eclipse.emf.refactor.refactoring.interfaces.IDataManagement;
+import org.eclipse.emf.refactor.refactoring.runtime.ltk.LtkEmfRefactoringProcessorAdapter;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor;
+
+public final class RefactoringController implements IController {
+
+ /**
+ * 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>();
+
+ /**
+ * 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.common.core.IController#
+ * getDataManagementObject()
+ * @generated
+ */
+ @Override
+ public IDataManagement getDataManagementObject() {
+ return this.dataManagement;
+ }
+
+ /**
+ * 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.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() {
+ try {
+ ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>> selectedEObjects =
+ ((ContextList) dataManagement.
+ getInPortByName(dataManagement.SELECTEDEOBJECT).getValue()).getElements();<%/*
+ */%><%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>
+ String <%=pC.getName()%> =
+ (String) dataManagement.getInPortByName("<%=pC.getName()%>").getValue();<%}%>
+ // begin prepare and execute comrel interpreter
+ ComrelInterpreter interpreter = new ComrelInterpreter(selectedEObjects.get(0));
+ interpreter.loadComrelModel(dataManagement.getComrelFilePath());
+ setRootPortValues(interpreter, selectedEObjects<%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>,
+ <%=pC.getName()%><%}%>);
+ interpreter.execute();
+ // end prepare and execute comrel interpreter
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void setRootPortValues(
+ ComrelInterpreter interpreter,
+ ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>> selectedEObjects<%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>,
+ String <%=pC.getName()%><%}%>) {
+ RefactoringUnit rootRefactoringUnit = interpreter.getRootRefactoringUnit();
+ for (InputPort ip : rootRefactoringUnit.getAllInputPorts()) {
+ System.out.println(ip.getName());
+ if (ip.getName().equals("selectedEObjects")) {
+ ((MultiInputPort) ip).getValue().addAll(selectedEObjects);
+ }<%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>
+ if (ip.getName().equals("<%=pC.getName()%>")) {
+ ((SingleInputPort) ip).setValue(<%=pC.getName()%>);
+ }<%}%>
+ }
+ }
+ };
+ }
+
+ /**
+ * Internal class for providing an instance of a LTK RefactoringProcessor
+ * used for EMF model refactorings.
+ * @generated
+ */
+ public final class InternalRefactoringProcessor extends
+ LtkEmfRefactoringProcessorAdapter {
+
+ /**
+ * 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());
+ }
+
+ /**
+ * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#
+ * checkInitialConditions(org.eclipse.core.runtime.IProgressMonitor)
+ * @generated
+ */
+ @Override
+ public RefactoringStatus checkInitialConditions(){
+ RefactoringStatus result = new RefactoringStatus();
+ ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>> selectedEObjects =
+ ((ContextList) dataManagement.
+ getInPortByName(dataManagement.SELECTEDEOBJECT).getValue()).getElements();
+ // TODO: implement initial check
+ return result;
+ }
+
+ /**
+ * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#
+ * checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor,
+ * org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
+ * @generated
+ */
+ @Override
+ public RefactoringStatus checkFinalConditions(){
+ RefactoringStatus result = new RefactoringStatus();
+ ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>> selectedEObjects =
+ ((ContextList) dataManagement.
+ getInPortByName(dataManagement.SELECTEDEOBJECT).getValue()).getElements();<%/*
+ */%><%for (ParameterInfo pC : refactoringConfig.getParameters()) {%>
+ String <%=pC.getName()%> =
+ (String) dataManagement.getInPortByName("<%=pC.getName()%>").getValue();<%}%>
+ // TODO: implement final check
+ return result;
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelSingle.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelSingle.javajet
new file mode 100644
index 0000000..d30fa07
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringControllerComrelSingle.javajet
@@ -0,0 +1,220 @@
+<%@ jet package="comrel.refactoring" class="RefactoringController"
+imports="org.eclipse.emf.refactor.refactoring.generator.core.* comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringController.javajet,v 1.3 2011/01/21 13:08:06 tarendt Exp $
+ */
+package <%=refactoringConfig.getPackageName()%>;
+
+import comrel.InputPort;
+import comrel.RefactoringUnit;
+import comrel.SingleInputPort;
+import comrel.interpreter.ComrelInterpreter;
+
+import java.io.IOException;
+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.interfaces.IController;
+import org.eclipse.emf.refactor.refactoring.interfaces.IDataManagement;
+import org.eclipse.emf.refactor.refactoring.runtime.ltk.LtkEmfRefactoringProcessorAdapter;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor;
+
+public final class RefactoringController implements IController {
+
+ /**
+ * 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>();
+
+ /**
+ * 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 Refactoring 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 refactoring) {
+ this.parent = refactoring;
+ }
+
+ /**
+ * Returns the DataManagement object of the model refactoring.
+ * @return DataManagement object of the model refactoring.
+ * @see org.eclipse.emf.refactor.common.core.IController#
+ * getDataManagementObject()
+ * @generated
+ */
+ @Override
+ public IDataManagement getDataManagementObject() {
+ return this.dataManagement;
+ }
+
+ /**
+ * 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.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() {
+ try {
+ <%=refactoringConfig.getSelectedEObjectClass()%> selectedEObject =
+ (<%=refactoringConfig.getSelectedEObjectClass()%>) dataManagement.
+ getInPortByName(dataManagement.SELECTEDEOBJECT).getValue();<%/*
+ */%><%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>
+ String <%=pC.getName()%> =
+ (String) dataManagement.getInPortByName("<%=pC.getName()%>").getValue();<%}%>
+ // begin prepare and execute comrel interpreter
+ ComrelInterpreter interpreter = new ComrelInterpreter(selectedEObject);
+ interpreter.loadComrelModel(dataManagement.getComrelFilePath());
+ setRootPortValues(interpreter, selectedEObject<%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>,
+ <%=pC.getName()%><%}%>);
+ interpreter.execute();
+ // end prepare and execute comrel interpreter
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void setRootPortValues(
+ ComrelInterpreter interpreter,
+ <%=refactoringConfig.getSelectedEObjectClass()%> selectedEObject<%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>,
+ String <%=pC.getName()%><%}%>) {
+ RefactoringUnit rootRefactoringUnit = interpreter.getRootRefactoringUnit();
+ for (InputPort ip : rootRefactoringUnit.getAllInputPorts()) {
+ System.out.println(ip.getName());
+ if (ip.getName().equals("selectedEObject")) {
+ ((SingleInputPort) ip).setValue(selectedEObject);
+ }<%for (ParameterInfo pC : refactoringConfig.getParameters()) { %>
+ if (ip.getName().equals("<%=pC.getName()%>")) {
+ ((SingleInputPort) ip).setValue(<%=pC.getName()%>);
+ }<%}%>
+ }
+ }
+ };
+ }
+
+ /**
+ * Internal class for providing an instance of a LTK RefactoringProcessor
+ * used for EMF model refactorings.
+ * @generated
+ */
+ public final class InternalRefactoringProcessor extends
+ LtkEmfRefactoringProcessorAdapter {
+
+ /**
+ * 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());
+ }
+
+ /**
+ * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#
+ * checkInitialConditions(org.eclipse.core.runtime.IProgressMonitor)
+ * @generated
+ */
+ @Override
+ public RefactoringStatus checkInitialConditions(){
+ RefactoringStatus result = new RefactoringStatus();
+ <%=refactoringConfig.getSelectedEObjectClass()%> selectedEObject =
+ (<%=refactoringConfig.getSelectedEObjectClass()%>) dataManagement.
+ getInPortByName(dataManagement.SELECTEDEOBJECT).getValue();
+ // TODO: implement initial check
+ return result;
+ }
+
+ /**
+ * @see org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor#
+ * checkFinalConditions(org.eclipse.core.runtime.IProgressMonitor,
+ * org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
+ * @generated
+ */
+ @Override
+ public RefactoringStatus checkFinalConditions(){
+ RefactoringStatus result = new RefactoringStatus();
+ <%=refactoringConfig.getSelectedEObjectClass()%> selectedEObject =
+ (<%=refactoringConfig.getSelectedEObjectClass()%>) dataManagement.
+ getInPortByName(dataManagement.SELECTEDEOBJECT).getValue();<%/*
+ */%><%for (ParameterInfo pC : refactoringConfig.getParameters()) {%>
+ String <%=pC.getName()%> =
+ (String) dataManagement.getInPortByName("<%=pC.getName()%>").getValue();<%}%>
+ // TODO: implement final check
+ return result;
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelMulti.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelMulti.javajet
new file mode 100644
index 0000000..cfa35e8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelMulti.javajet
@@ -0,0 +1,113 @@
+ <%@ jet package="comrel.refactoring" class="RefactoringDataManagement"
+imports="org.eclipse.emf.refactor.refactoring.generator.core.* comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringDataManagement.javajet,v 1.2 2011/01/21 13:08:06 tarendt Exp $
+ */
+package <%=refactoringConfig.getPackageName()%>;
+
+import <%=refactoringConfig.getProjectName().toLowerCase()%>.Activator;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import comrel.interpreter.IEObjectGetter;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.refactor.refactoring.core.Port;
+import org.eclipse.emf.refactor.refactoring.runtime.DataManagementAdapter;
+
+import org.osgi.framework.Bundle;
+
+/**
+ * Class for specific data concerning a model refactoring.
+ * @generated
+ */
+public class RefactoringDataManagement extends DataManagementAdapter {
+
+ protected final String SELECTEDEOBJECT = "selectedEObject";
+ protected final String COMRELMODELS = "comrelmodels";
+ protected final String COMRELMODELSSLASH = "\\comrelmodels\\";
+
+ private String comrelFileName = "<%=refactoringConfig.getComrelModel()%>";
+
+ /**
+ * Default constructor.
+ * @generated
+ */
+ public RefactoringDataManagement() {
+ this.addPorts();
+ }
+
+ /**
+ * Adds the ports to the data management used for parameter passing.
+ * @generated
+ */
+ private void addPorts(){
+ this.inPorts.add
+ (new Port<ContextList>(SELECTEDEOBJECT, ContextList.class));
+<% for (ParameterInfo pc : refactoringConfig.getParameters()) { %>
+ this.inPorts.add
+ (new Port<String>
+ ("<%=pc.getName()%>", String.class, "unspecified"));
+<% } %>
+ }
+
+ /**
+ * @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(new ContextList(selection));
+ }
+
+ public String getComrelFilePath() {
+ String path = "";
+ final Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+ try {
+ if (bundle != null) {
+ path = FileLocator.toFileURL(bundle.getEntry(COMRELMODELS)).getFile();
+ path += this.comrelFileName;
+ } else {
+ path = new File(".").getCanonicalPath()
+ + COMRELMODELSSLASH + this.comrelFileName;
+ }
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ return path;
+ }
+
+ public class ContextList implements IEObjectGetter {
+
+ private ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>> elements =
+ new ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>>();
+
+ public ContextList(List<EObject> selection) {
+ super();
+ for (EObject eObject : selection) {
+ this.elements.add((<%=refactoringConfig.getSelectedEObjectClass()%>) eObject);
+ }
+ }
+
+ public ArrayList<<%=refactoringConfig.getSelectedEObjectClass()%>> getElements() {
+ return elements;
+ }
+
+ @Override
+ public EObject getEObject() {
+ return elements.get(0);
+ }
+ }
+
+}
+ \ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelSingle.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelSingle.javajet
new file mode 100644
index 0000000..51efbfd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringDataManagementComrelSingle.javajet
@@ -0,0 +1,90 @@
+ <%@ jet package="comrel.refactoring" class="RefactoringDataManagement"
+imports="org.eclipse.emf.refactor.refactoring.generator.core.* comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringDataManagement.javajet,v 1.2 2011/01/21 13:08:06 tarendt Exp $
+ */
+package <%=refactoringConfig.getPackageName()%>;
+
+import <%=refactoringConfig.getProjectName().toLowerCase()%>.Activator;
+
+import java.io.File;
+import java.util.List;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.refactor.refactoring.core.Port;
+import org.eclipse.emf.refactor.refactoring.runtime.DataManagementAdapter;
+
+import org.osgi.framework.Bundle;
+
+/**
+ * Class for specific data concerning a model refactoring.
+ * @generated
+ */
+public class RefactoringDataManagement extends DataManagementAdapter {
+
+ protected final String SELECTEDEOBJECT = "selectedEObject";
+ protected final String COMRELMODELS = "comrelmodels";
+ protected final String COMRELMODELSSLASH = "\\comrelmodels\\";
+
+ private String comrelFileName = "<%=refactoringConfig.getComrelModel()%>";
+
+ /**
+ * Default constructor.
+ * @generated
+ */
+ public RefactoringDataManagement() {
+ this.addPorts();
+ }
+
+ /**
+ * Adds the ports to the data management used for parameter passing.
+ * @generated
+ */
+ private void addPorts(){
+ this.inPorts.add
+ (new Port<<%=refactoringConfig.getSelectedEObjectClass()%>>
+ (SELECTEDEOBJECT, <%=refactoringConfig.getSelectedEObjectClass()%>.class));
+<% for (ParameterInfo pc : refactoringConfig.getParameters()) { %>
+ this.inPorts.add
+ (new Port<String>
+ ("<%=pc.getName()%>", String.class, "unspecified"));
+<% } %>
+ }
+
+ /**
+ * @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((<%=refactoringConfig.getSelectedEObjectClass()%>) selection.get(0));
+ }
+
+ public String getComrelFilePath() {
+ String path = "";
+ final Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+ try {
+ if (bundle != null) {
+ path = FileLocator.toFileURL(bundle.getEntry(COMRELMODELS)).getFile();
+ path += this.comrelFileName;
+ } else {
+ path = new File(".").getCanonicalPath()
+ + COMRELMODELSSLASH + this.comrelFileName;
+ }
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ return path;
+ }
+
+}
+ \ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelMulti.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelMulti.javajet
new file mode 100644
index 0000000..2b2bace
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelMulti.javajet
@@ -0,0 +1,82 @@
+<%@ jet package="comrel.refactoring" class="RefactoringGuiHandler"
+imports="comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringGuiHandler.javajet,v 1.1 2010/07/15 13:08:44 tarendt Exp $
+ */
+ package <%=refactoringConfig.getPackageName()%>;
+
+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 refactoring) {
+ this.parent = refactoring;
+ }
+
+ /**
+ * @see org.eclipse.emf.refactor.common.core.ui.IGuiHandler#show()
+ * @generated
+ */
+ @Override
+ public RefactoringWizard show() {
+ return new <%=refactoringConfig.getPackageName()%>.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;
+ boolean onlyOneType = true;
+ for (EObject o : selection) {
+ if (null != o) {
+ if (! (o instanceof <%=refactoringConfig.getSelectedEObjectClass()%>)) {
+ onlyOneType = false;
+ break;
+ }
+ }
+ }
+ return onlyOneType;
+ }
+
+}
+ \ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelSingle.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelSingle.javajet
new file mode 100644
index 0000000..24ce161
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringGuiHandlerComrelSingle.javajet
@@ -0,0 +1,80 @@
+<%@ jet package="comrel.refactoring" class="RefactoringGuiHandler"
+imports="comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringGuiHandler.javajet,v 1.1 2010/07/15 13:08:44 tarendt Exp $
+ */
+ package <%=refactoringConfig.getPackageName()%>;
+
+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 refactoring) {
+ this.parent = refactoring;
+ }
+
+ /**
+ * @see org.eclipse.emf.refactor.common.core.ui.IGuiHandler#show()
+ * @generated
+ */
+ @Override
+ public RefactoringWizard show() {
+ return new <%=refactoringConfig.getPackageName()%>.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 <%=refactoringConfig.getSelectedEObjectClass()%>) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+}
+ \ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardComrel.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardComrel.javajet
new file mode 100644
index 0000000..e7de0fe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardComrel.javajet
@@ -0,0 +1,43 @@
+<%@ jet package="comrel.refactoring" class="RefactoringWizard"
+imports="comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringWizard.javajet,v 1.1 2010/07/15 13:08:44 tarendt Exp $
+ */
+package <%=refactoringConfig.getPackageName()%>;
+
+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));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardPageComrel.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardPageComrel.javajet
new file mode 100644
index 0000000..c540992
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/RefactoringWizardPageComrel.javajet
@@ -0,0 +1,135 @@
+<%@ jet package="comrel.refactoring" class="RefactoringWizardPage"
+imports="org.eclipse.emf.refactor.refactoring.generator.core.* comrel.generator.refactoring.*"%>
+<%ComrelConfig refactoringConfig = (ComrelConfig) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefactoringWizardPage.javajet,v 1.1 2010/07/15 13:08:44 tarendt Exp $
+ */
+package <%=refactoringConfig.getPackageName()%>;
+
+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;
+
+<% for (ParameterInfo pc : refactoringConfig.getParameters()) { %>
+ /**
+ * Label for each parameter.
+ * @generated
+ */
+ private Label <%=pc.getName()%>Label;
+
+ /**
+ * TextField for each parameter.
+ * @generated
+ */
+ private Text <%=pc.getName()%>Widget;
+<% } %>
+
+ /**
+ * 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();
+
+<% for (ParameterInfo pc : refactoringConfig.getParameters()) { %>
+ if (<%=pc.getName()%>Widget != null) {
+ String <%=pc.getName()%> = <%=pc.getName()%>Widget.getText();
+ if (!<%=pc.getName()%>.isEmpty()){
+ ((RefactoringDataManagement)
+ this.controller.getDataManagementObject()).
+ getInPortByName("<%=pc.getName()%>").
+ setValue(<%=pc.getName()%>);
+ } else {
+ ((RefactoringDataManagement)
+ this.controller.getDataManagementObject()).
+ getInPortByName("<%=pc.getName()%>").
+ 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);
+
+<% for (ParameterInfo pc : refactoringConfig.getParameters()) { %>
+
+ <%=pc.getName()%>Label = new Label(composite, SWT.NONE);
+ <%=pc.getName()%>Label.setText("<% if (pc.getDescription() != null) {%> <%=pc.getDescription()%> <% } else { %> value of variable '<%=pc.getName()%>'<% } %>: ");
+ <%=pc.getName()%>Label.setEnabled(true);
+
+ <%=pc.getName()%>Widget = new Text(composite, SWT.BORDER);
+ <%=pc.getName()%>Widget.setToolTipText
+ ("value of variable '<%=pc.getName()%>'");
+ <%=pc.getName()%>Widget.setEnabled(true);
+ <%=pc.getName()%>Widget.setLayoutData(gd);
+ <%=pc.getName()%>Widget.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.comrel/bin/.gitignore b/org.eclipse.emf.refactor.comrel/bin/.gitignore
deleted file mode 100644
index 508dbce..0000000
--- a/org.eclipse.emf.refactor.comrel/bin/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/comrel
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/AtomicUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/AtomicUnit.class
new file mode 100644
index 0000000..7d93f15
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/AtomicUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/CartesianQueuedUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/CartesianQueuedUnit.class
new file mode 100644
index 0000000..02019cf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/CartesianQueuedUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/CompositeRefactoring.class b/org.eclipse.emf.refactor.comrel/bin/comrel/CompositeRefactoring.class
new file mode 100644
index 0000000..bcaac55
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/CompositeRefactoring.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/CompositeUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/CompositeUnit.class
new file mode 100644
index 0000000..d45d523
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/CompositeUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelFactory.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelFactory.class
new file mode 100644
index 0000000..b0bc9dc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelFactory.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage$Literals.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage$Literals.class
new file mode 100644
index 0000000..1e80c4c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage$Literals.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage.class
new file mode 100644
index 0000000..3caa493
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ComrelPackage.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ConditionCheck.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ConditionCheck.class
new file mode 100644
index 0000000..7aea63c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ConditionCheck.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ConditionalUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ConditionalUnit.class
new file mode 100644
index 0000000..a142856
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ConditionalUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/DescribedElement.class b/org.eclipse.emf.refactor.comrel/bin/comrel/DescribedElement.class
new file mode 100644
index 0000000..7cfa185
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/DescribedElement.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/FeatureHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/FeatureHelper.class
new file mode 100644
index 0000000..b8369e0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/FeatureHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/FeatureUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/FeatureUnit.class
new file mode 100644
index 0000000..8776e0c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/FeatureUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/FilterHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/FilterHelper.class
new file mode 100644
index 0000000..b92abb3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/FilterHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/FilterUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/FilterUnit.class
new file mode 100644
index 0000000..edc0ca8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/FilterUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/Helper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/Helper.class
new file mode 100644
index 0000000..50b00a7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/Helper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/HelperUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/HelperUnit.class
new file mode 100644
index 0000000..485dee2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/HelperUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/InputPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/InputPort.class
new file mode 100644
index 0000000..ca181b6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/InputPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MappingVisualization.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MappingVisualization.class
new file mode 100644
index 0000000..f1304e9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MappingVisualization.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ModelRefactoring.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ModelRefactoring.class
new file mode 100644
index 0000000..e53b18a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ModelRefactoring.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureHelper.class
new file mode 100644
index 0000000..88b588a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureUnit.class
new file mode 100644
index 0000000..8063219
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFeatureUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterHelper.class
new file mode 100644
index 0000000..39a0406
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterUnit.class
new file mode 100644
index 0000000..9cd4013
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiFilterUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiInputPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiInputPort.class
new file mode 100644
index 0000000..2aaccf8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiInputPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiOutputPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiOutputPort.class
new file mode 100644
index 0000000..9c657c3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiOutputPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiPort.class
new file mode 100644
index 0000000..0038853
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiPortMapping.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiPortMapping.class
new file mode 100644
index 0000000..e63e50b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiPortMapping.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/MultiSinglePortMapping.class b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiSinglePortMapping.class
new file mode 100644
index 0000000..ee4fec4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/MultiSinglePortMapping.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/NamedElement.class b/org.eclipse.emf.refactor.comrel/bin/comrel/NamedElement.class
new file mode 100644
index 0000000..b2678b0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/NamedElement.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/OutputPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/OutputPort.class
new file mode 100644
index 0000000..f628809
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/OutputPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/ParallelQueuedUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/ParallelQueuedUnit.class
new file mode 100644
index 0000000..5d1d3d8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/ParallelQueuedUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/Port.class b/org.eclipse.emf.refactor.comrel/bin/comrel/Port.class
new file mode 100644
index 0000000..2369a23
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/Port.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/PortMapping.class b/org.eclipse.emf.refactor.comrel/bin/comrel/PortMapping.class
new file mode 100644
index 0000000..88cf147
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/PortMapping.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/QueuedUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/QueuedUnit.class
new file mode 100644
index 0000000..79e58d3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/QueuedUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/RefactoringUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/RefactoringUnit.class
new file mode 100644
index 0000000..67ed7c8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/RefactoringUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SequentialUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SequentialUnit.class
new file mode 100644
index 0000000..17b6fd0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SequentialUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureHelper.class
new file mode 100644
index 0000000..f154f78
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureUnit.class
new file mode 100644
index 0000000..a02bde2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFeatureUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterHelper.class
new file mode 100644
index 0000000..193c16e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterUnit.class
new file mode 100644
index 0000000..e43ab60
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleFilterUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleInputPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleInputPort.class
new file mode 100644
index 0000000..d42da43
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleInputPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleOutputPort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleOutputPort.class
new file mode 100644
index 0000000..9bc2057
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleOutputPort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SinglePort.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SinglePort.class
new file mode 100644
index 0000000..30822a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SinglePort.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SinglePortMapping.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SinglePortMapping.class
new file mode 100644
index 0000000..83831dc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SinglePortMapping.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/SingleQueuedUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleQueuedUnit.class
new file mode 100644
index 0000000..c697e48
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/SingleQueuedUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/TwicedQueuedUnit.class b/org.eclipse.emf.refactor.comrel/bin/comrel/TwicedQueuedUnit.class
new file mode 100644
index 0000000..2b3ead7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/TwicedQueuedUnit.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFeatureHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFeatureHelper.class
new file mode 100644
index 0000000..8dc4bb3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFeatureHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFilterHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFilterHelper.class
new file mode 100644
index 0000000..19d6f20
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/IMultiFilterHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFeatureHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFeatureHelper.class
new file mode 100644
index 0000000..be5b427
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFeatureHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFilterHelper.class b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFilterHelper.class
new file mode 100644
index 0000000..150b206
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/extensions/ISingleFilterHelper.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/figures/InputPortFigure.class b/org.eclipse.emf.refactor.comrel/bin/comrel/figures/InputPortFigure.class
new file mode 100644
index 0000000..83b6d94
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/figures/InputPortFigure.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/figures/OutputPortFigure.class b/org.eclipse.emf.refactor.comrel/bin/comrel/figures/OutputPortFigure.class
new file mode 100644
index 0000000..4b61820
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/figures/OutputPortFigure.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/figures/PortMappingFigure.class b/org.eclipse.emf.refactor.comrel/bin/comrel/figures/PortMappingFigure.class
new file mode 100644
index 0000000..174e981
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/figures/PortMappingFigure.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/AtomicUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/AtomicUnitImpl.class
new file mode 100644
index 0000000..8ee0e53
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/AtomicUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CartesianQueuedUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CartesianQueuedUnitImpl.class
new file mode 100644
index 0000000..a6c6bdc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CartesianQueuedUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeRefactoringImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeRefactoringImpl.class
new file mode 100644
index 0000000..2d6699a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeRefactoringImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeUnitImpl.class
new file mode 100644
index 0000000..d8a08f3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/CompositeUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelFactoryImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelFactoryImpl.class
new file mode 100644
index 0000000..19b3c72
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelFactoryImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelPackageImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelPackageImpl.class
new file mode 100644
index 0000000..7cc3fe3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ComrelPackageImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionCheckImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionCheckImpl.class
new file mode 100644
index 0000000..57e6d3c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionCheckImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionalUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionalUnitImpl.class
new file mode 100644
index 0000000..51d89d8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ConditionalUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureHelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureHelperImpl.class
new file mode 100644
index 0000000..0365689
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureHelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureUnitImpl.class
new file mode 100644
index 0000000..9fb2ffb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FeatureUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterHelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterHelperImpl.class
new file mode 100644
index 0000000..79f0b06
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterHelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterUnitImpl.class
new file mode 100644
index 0000000..d52ee8d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/FilterUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperImpl.class
new file mode 100644
index 0000000..303ef78
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperUnitImpl.class
new file mode 100644
index 0000000..6833123
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/HelperUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/InputPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/InputPortImpl.class
new file mode 100644
index 0000000..8f7d075
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/InputPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ModelRefactoringImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ModelRefactoringImpl.class
new file mode 100644
index 0000000..bd3cf67
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ModelRefactoringImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureHelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureHelperImpl.class
new file mode 100644
index 0000000..f9fe3aa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureHelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureUnitImpl.class
new file mode 100644
index 0000000..3e9c813
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFeatureUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterHelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterHelperImpl.class
new file mode 100644
index 0000000..464273c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterHelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterUnitImpl.class
new file mode 100644
index 0000000..8bc699c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiFilterUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiInputPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiInputPortImpl.class
new file mode 100644
index 0000000..a1b3f1b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiInputPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiOutputPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiOutputPortImpl.class
new file mode 100644
index 0000000..c28b2cc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiOutputPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortImpl.class
new file mode 100644
index 0000000..4479a77
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortMappingImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortMappingImpl.class
new file mode 100644
index 0000000..0f9a7cf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiPortMappingImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiSinglePortMappingImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiSinglePortMappingImpl.class
new file mode 100644
index 0000000..733c076
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/MultiSinglePortMappingImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/OutputPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/OutputPortImpl.class
new file mode 100644
index 0000000..146be68
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/OutputPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ParallelQueuedUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ParallelQueuedUnitImpl.class
new file mode 100644
index 0000000..04d7b50
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/ParallelQueuedUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortImpl.class
new file mode 100644
index 0000000..fe2eaca
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortMappingImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortMappingImpl.class
new file mode 100644
index 0000000..6bd4bc6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/PortMappingImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/QueuedUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/QueuedUnitImpl.class
new file mode 100644
index 0000000..ad2da47
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/QueuedUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/RefactoringUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/RefactoringUnitImpl.class
new file mode 100644
index 0000000..e39c819
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/RefactoringUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SequentialUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SequentialUnitImpl.class
new file mode 100644
index 0000000..c75d838
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SequentialUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureHelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureHelperImpl.class
new file mode 100644
index 0000000..5bb449e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureHelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureUnitImpl.class
new file mode 100644
index 0000000..090466f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFeatureUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterHelperImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterHelperImpl.class
new file mode 100644
index 0000000..b854167
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterHelperImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterUnitImpl.class
new file mode 100644
index 0000000..54cd76c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleFilterUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleInputPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleInputPortImpl.class
new file mode 100644
index 0000000..0077357
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleInputPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleOutputPortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleOutputPortImpl.class
new file mode 100644
index 0000000..c3cfd39
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleOutputPortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortImpl.class
new file mode 100644
index 0000000..ebe1550
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortMappingImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortMappingImpl.class
new file mode 100644
index 0000000..dbad9fe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SinglePortMappingImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleQueuedUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleQueuedUnitImpl.class
new file mode 100644
index 0000000..60bcb97
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/SingleQueuedUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/impl/TwicedQueuedUnitImpl.class b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/TwicedQueuedUnitImpl.class
new file mode 100644
index 0000000..856a2e5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/impl/TwicedQueuedUnitImpl.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors$AttributedTextPane.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors$AttributedTextPane.class
new file mode 100644
index 0000000..cb5104a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors$AttributedTextPane.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors.class
new file mode 100644
index 0000000..e369492
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/Colors.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory$1.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory$1.class
new file mode 100644
index 0000000..3a69d55
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory$1.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory.class
new file mode 100644
index 0000000..99e50bb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelAdapterFactory.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelSwitch.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelSwitch.class
new file mode 100644
index 0000000..8d72dd5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelSwitch.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil$ModelRefactoringComparator.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil$ModelRefactoringComparator.class
new file mode 100644
index 0000000..f94d8e9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil$ModelRefactoringComparator.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil.class
new file mode 100644
index 0000000..a2f423f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ComrelUtil.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/ExtensionPointInfo.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ExtensionPointInfo.class
new file mode 100644
index 0000000..3cec393
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/ExtensionPointInfo.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel/bin/comrel/util/RegistryUtil.class b/org.eclipse.emf.refactor.comrel/bin/comrel/util/RegistryUtil.class
new file mode 100644
index 0000000..bf7357e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/comrel/util/RegistryUtil.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.refactoring.papyrus/bin/.gitignore b/org.eclipse.emf.refactor.refactoring.ocl/bin/.gitignore
index 571ee51..571ee51 100644
--- a/org.eclipse.emf.refactor.refactoring.papyrus/bin/.gitignore
+++ b/org.eclipse.emf.refactor.refactoring.ocl/bin/.gitignore

Back to the top