package org.eclipse.acceleo.tutorial.extension.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.acceleo.engine.utils.AcceleoEngineUtils;
import org.eclipse.emf.common.EMFPlugin;
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 class Extension extends AbstractAcceleoGenerator {
public static final String MODULE_FILE_NAME = "/org/eclipse/acceleo/tutorial/extension/main/extension";
public static final String[] TEMPLATE_NAMES = { "main" };
private List<String> propertiesFiles = new ArrayList<String>();
}
public Extension(URI modelURI, File targetFolder,
List<? extends Object> arguments) throws IOException {
initialize(modelURI, targetFolder, arguments);
}
public Extension(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>();
Extension generator = new Extension(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
propertiesFiles.add("platform:/plugin/org.eclipse.acceleo.tutorial.webapp/org/eclipse/acceleo/tutorial/webapp/properties/default.properties");
if(EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null){
propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource()));
}
return propertiesFiles;
}
@Override
this.propertiesFiles.add(propertiesFile);
}
@Override
return TEMPLATE_NAMES;
}
@Override
super.registerPackages(resourceSet);
}
@Override
super.registerResourceFactories(resourceSet);
}
}