package com.github.sbegaudeau.acceleo.modules.ecore.gen.scala.main;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
import org.eclipse.emf.common.util.BasicMonitor;
import org.eclipse.emf.common.util.Monitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.ResourceSet;
public static final String MODULE_FILE_NAME = "/com/github/sbegaudeau/acceleo/modules/ecore/gen/scala/main/ecoreGenScala";
public static final String[] TEMPLATE_NAMES = { "generateElement" };
private List<String> propertiesFiles = new ArrayList<String>();
}
public EcoreGenScala(URI modelURI, File targetFolder, List<?
extends Object> arguments)
throws IOException {
initialize(modelURI, targetFolder, arguments);
}
public EcoreGenScala(EObject model, File targetFolder, List<?
extends Object> arguments)
throws IOException {
initialize(model, targetFolder, arguments);
}
public static void main(String[] args) {
try {
if (args.length < 2) {
System.out.println("Arguments not valid : {model, folder}.");
} else {
URI modelURI = URI.createFileURI(args[0]);
File folder = new File(args[1]);
List<String> arguments = new ArrayList<String>();
EcoreGenScala generator = new EcoreGenScala(modelURI, folder, arguments);
for (int i = 2; i < args.length; i++) {
generator.addPropertiesFile(args[i]);
}
generator.doGenerate(new BasicMonitor());
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void doGenerate(Monitor monitor)
throws IOException {
super.doGenerate(monitor);
}
@Override
List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
return listeners;
}
@Override
return super.getGenerationStrategy();
}
@Override
return MODULE_FILE_NAME;
}
@Override
return propertiesFiles;
}
@Override
this.propertiesFiles.add(propertiesFile);
}
@Override
return TEMPLATE_NAMES;
}
@Override
super.registerPackages(resourceSet);
if (!isInWorkspace(org.eclipse.emf.ecore.EcorePackage.class)) {
resourceSet.getPackageRegistry().put(org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getNsURI(), org.eclipse.emf.ecore.EcorePackage.eINSTANCE);
}
if (!isInWorkspace(org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.class)) {
resourceSet.getPackageRegistry().put(org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.eINSTANCE.getNsURI(), org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage.eINSTANCE);
}
}
@Override
super.registerResourceFactories(resourceSet);
}
}