package com.opcoach.genmodeladdon.core; import java.io.File; import java.io.FileWriter; import java.io.IOException; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.xtend2.lib.StringConcatenation; @SuppressWarnings("all") public class GenerateAntFileForCodeGeneration { public final static String ANT_FILENAME = "generateEMFCode.xml"; private CharSequence generateAntFileContent(final String modelDir, final String modelName) { StringConcatenation _builder = new StringConcatenation(); _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); _builder.newLine(); _builder.newLine(); _builder.append("<!-- Dont forget to launch this ant file in the same JRE than your Eclipse -->"); _builder.newLine(); _builder.newLine(); _builder.append("<project name=\"project\" default=\"generateCode\">"); _builder.newLine(); _builder.append("\t"); _builder.append("<description> Build the javacode from ecore model </description>"); _builder.newLine(); _builder.append("\t"); _builder.append("<target name=\"generateCode\" description=\"description\">"); _builder.newLine(); _builder.append("\t\t"); _builder.append("<emf.Ecore2Java genModel=\""); _builder.append(modelDir, "\t\t"); _builder.append("/"); _builder.append(modelName, "\t\t"); _builder.append(".genmodel\" "); _builder.newLineIfNotEmpty(); _builder.append("\t\t\t"); _builder.append("model=\""); _builder.append(modelDir, "\t\t\t"); _builder.append("/"); _builder.append(modelName, "\t\t\t"); _builder.append(".ecore\" "); _builder.newLineIfNotEmpty(); _builder.append("\t\t\t"); _builder.append("generatemodelproject=\"true\" "); _builder.newLine(); _builder.append("\t\t\t"); _builder.append("generateeditorproject=\"false\" "); _builder.newLine(); _builder.append("\t\t\t"); _builder.append("generateeditproject=\"false\" "); _builder.newLine(); _builder.append("\t\t\t"); _builder.append("reconcilegenmodel=\"reload\" />"); _builder.newLine(); _builder.append("\t"); _builder.append("</target>"); _builder.newLine(); _builder.append("</project>"); _builder.newLine(); return _builder; } public File getAntFile(final IProject proj) { return this.getAntFile(proj, GenerateAntFileForCodeGeneration.ANT_FILENAME); } public File getAntFile(final IProject proj, final String antFileName) { final IPath location = proj.getLocation(); String _oSString = location.toOSString(); String _plus = (_oSString + File.separator); final String srcAbsolutePath = (_plus + antFileName); final File f = new File(srcAbsolutePath); return f; } public File generateAntFile(final String modelDir, final String modelName, final IProject proj) throws IOException, CoreException { return this.generateAntFile(modelDir, modelName, proj, GenerateAntFileForCodeGeneration.ANT_FILENAME); } public File generateAntFile(final String modelDir, final String modelName, final IProject proj, final String antFileName) throws IOException, CoreException { final File f = this.getAntFile(proj, antFileName); boolean _exists = f.exists(); boolean _not = (!_exists); if (_not) { f.createNewFile(); } final FileWriter fw = new FileWriter(f); CharSequence _generateAntFileContent = this.generateAntFileContent(modelDir, modelName); String _string = _generateAntFileContent.toString(); fw.write(_string); fw.flush(); fw.close(); proj.refreshLocal(IResource.DEPTH_ONE, null); return f; } }