generation process implemented
diff --git a/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/GeneratioManager.java b/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/GenerationManager.java similarity index 87% rename from org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/GeneratioManager.java rename to org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/GenerationManager.java index b3b555b..302e9be 100644 --- a/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/GeneratioManager.java +++ b/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/GenerationManager.java
@@ -61,7 +61,7 @@ * @author arendt * */ -public class GeneratioManager { +public class GenerationManager { /** * Full qualified name of the template directory inside the plugin. @@ -111,7 +111,7 @@ * @param config Configuration data used for generating model * refactoring code. */ - public GeneratioManager(RefactoringInfo info) { + public GenerationManager(RefactoringInfo info) { this.info = info; this.templateDirectory = setTemplateDirectory(); this.classpathEntries = setClassPathEntries(); @@ -193,8 +193,10 @@ try { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IResource r = root.findMember(JETEMITTERS); + System.out.println("IResoure: "+ r.getName()); if (r != null){ - r.delete(false, monitor); + r.delete(IResource.ALWAYS_DELETE_PROJECT_CONTENT, monitor); +// r.delete(false, monitor); } } catch (CoreException e) { } @@ -357,31 +359,30 @@ * as well as the contained config.xml files. * @param monitor Object monitoring the code generation. */ - protected void createTestFolders(IProgressMonitor monitor) { - String packageName = this.info.getPackageName(); - packageName = packageName.substring(0, packageName.lastIndexOf('.')); - String path = Platform.getInstanceLocation() - .getURL().getPath() + packageName; + protected void createTestFolders(IProgressMonitor monitor) { + IProject project = ResourcesPlugin.getWorkspace().getRoot() + .getProject(this.info.getProjectName()); + System.out.println("-- info.getNumberOfTests(): " + info.getNumberOfTests()); if (this.info.getNumberOfTests() > 0) { - try { - File testFolder = new File(path + "/tests/" + - this.info.getRefactoringId() + "/"); - testFolder.mkdirs(); - if (testFolder.exists() && testFolder.isDirectory()){ - String testfolderprefix = - testFolder.getCanonicalPath() + "/test_"; - for (int i = 1; i <= this.info.getNumberOfTests(); i++) { - File specifictestfolder = new File(testfolderprefix - + String.format("%03d", i) + "/"); - if (!specifictestfolder.exists() - || !specifictestfolder.isDirectory()) { - specifictestfolder.mkdir(); - createConfigXml(monitor, specifictestfolder); - } + String rootDir = "/tests/" + this.info.getRefactoringId() + "/"; + String dirPath = project.getLocation().append(rootDir).toOSString(); + System.out.println("--- dirPath: " + dirPath); + File testFolder = new File(dirPath); + testFolder.mkdirs(); + if (testFolder.exists() && testFolder.isDirectory()){ + for (int i = 1; i <= this.info.getNumberOfTests(); i++) { + String testDirSnippet = "/test_" + String.format("%03d", i) + "/"; + String testDir = project.getLocation().append(rootDir + testDirSnippet).toOSString(); + System.out.println("--- testDir: " + testDir); + File specifictestfolder = new File(testDir); + if (!specifictestfolder.exists() + || !specifictestfolder.isDirectory()) { + specifictestfolder.mkdir(); + String xmlName = "/config.xml"; + String xmlLocation = project.getLocation().append(rootDir + testDirSnippet + xmlName).toOSString(); + createConfigXml(monitor, xmlLocation); } - } - } catch (IOException e) { - e.printStackTrace(); + } } } } @@ -390,14 +391,16 @@ * Creates the config.xml files within the test folders for the * generated model refactoring. * @param monitor Object monitoring the code generation. - * @param xmlFolder File object containing the folder in which + * @param xmlLocation File object containing the folder in which * the config should be saved. */ - private void createConfigXml(IProgressMonitor monitor, File xmlFolder) { - String generatedCode = this.generateCode(monitor, XMLCONFIG); + private void createConfigXml(IProgressMonitor monitor, String path) { +// String generatedCode = this.generateCode(monitor, XMLCONFIG); + String generatedCode = "TO DO"; try { - File configXml = new File(xmlFolder.getCanonicalPath() - + "/config.xml"); +// String path = xmlLocation.getCanonicalPath() + "/config.xml"; + File configXml = new File(path); + System.out.println("---- createConfigXml::path: " + path); if (!configXml.exists() || !configXml.isFile()) { this.saveXml(monitor, generatedCode, configXml.getCanonicalPath().toString());
diff --git a/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/XMLPluginFileManager.java b/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/XMLPluginFileManager.java index 62a4e94..dce2d90 100644 --- a/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/XMLPluginFileManager.java +++ b/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/managers/XMLPluginFileManager.java
@@ -111,6 +111,18 @@ } } + private static Transformer createTransformer(){ + final TransformerFactory transformerFactory = TransformerFactory.newInstance(); + try { + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT,"yes"); + return transformer; + } catch (final TransformerConfigurationException e) { + e.printStackTrace(); + return null; + } + } + /** * Abstract method for getting a list of RefactoringConfig out from * the model refactoring extension point served in the plugin.xml @@ -132,9 +144,16 @@ try { IProject project = ResourcesPlugin.getWorkspace() .getRoot().getProject(projectName); + + String path = project.getLocation().toString() + "/" + XMLPluginFileManager.PLUGINXML; + System.out.println("Path: " + path); + final File file = new File(path); + System.out.println("exists: " + file.exists()); + if (! file.exists()) createPluginFile(path); + java.net.URI uri = project.getLocationURI(); - doc = builder.parse - (uri + "/" + XMLPluginFileManager.PLUGINXML); + path = uri + "/" + XMLPluginFileManager.PLUGINXML; + doc = builder.parse(path); } catch (final SAXException e) { e.printStackTrace(); } catch (final IOException e) { @@ -142,6 +161,7 @@ } if (doc != null) { Element root = doc.getDocumentElement(); + System.out.println(root); NodeList refactorings = root.getElementsByTagName (ExtensionPointTags.REFACTORING_TAG); for (int i=0; i < refactorings.getLength(); i++){ @@ -210,15 +230,7 @@ extension.appendChild(refactoring); } root.appendChild(extension); - final TransformerFactory transformerFactory = - TransformerFactory.newInstance(); - Transformer transformer = null; - try { - transformer = transformerFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT,"yes"); - } catch (final TransformerConfigurationException e) { - e.printStackTrace(); - } + Transformer transformer = XMLPluginFileManager.createTransformer(); final DOMSource source = new DOMSource(doc); IProject project = ResourcesPlugin.getWorkspace() .getRoot().getProject(projectName); @@ -232,5 +244,27 @@ } } } + + private static void createPluginFile(String path) { + final DocumentBuilder builder = XMLPluginFileManager.newDocumentBuilder(); + Document doc = null; + Element root; + if (builder != null) { + doc = builder.newDocument(); + root = doc.createElement(XMLPluginFileManager.PLUGIN); + doc.appendChild(root); + final Element extension = doc.createElement(ExtensionPointTags.EXTENSION_POINT_TAG); + extension.setAttribute(XMLPluginFileManager.POINT, ExtensionPointTags.EXTENSION_POINT_NAME); + root.appendChild(extension); + } + final Transformer transformer = XMLPluginFileManager.createTransformer(); + final DOMSource source = new DOMSource(doc); + final StreamResult result = new StreamResult(path); + try { + transformer.transform(source, result); + } catch (final TransformerException e) { + e.printStackTrace(); + } + } }
diff --git a/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/ui/NewRefactoringWizardJava.java b/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/ui/NewRefactoringWizardJava.java index 6ed39c9..4befb4c 100644 --- a/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/ui/NewRefactoringWizardJava.java +++ b/org.eclipse.emf.refactor.refactoring.generator/src/org/eclipse/emf/refactor/refactoring/generator/ui/NewRefactoringWizardJava.java
@@ -11,7 +11,6 @@ package org.eclipse.emf.refactor.refactoring.generator.ui; import java.lang.reflect.InvocationTargetException; -import java.util.Arrays; import java.util.LinkedList; import org.eclipse.core.resources.IProject; @@ -19,11 +18,10 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.refactor.refactoring.generator.core.RefactoringInfo; import org.eclipse.emf.refactor.refactoring.generator.interfaces.INewRefactoringWizard; -import org.eclipse.emf.refactor.refactoring.generator.managers.GeneratioManager; +import org.eclipse.emf.refactor.refactoring.generator.managers.GenerationManager; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardPage; @@ -155,7 +153,7 @@ refactoringConfig.setMetaModelName(metaModelName); refactoringConfig.setParameters(parameterWizardPage.getParameters()); System.out.println(refactoringConfig); - GeneratioManager rg = new GeneratioManager(refactoringConfig); + GenerationManager rg = new GenerationManager(refactoringConfig); rg.run(monitor); }