feat: début du MTL game2Prototype
This commit is contained in:
parent
659973b970
commit
8bd86e75a8
7
workspace/fr.n7.game.toPrototype/.classpath
Normal file
7
workspace/fr.n7.game.toPrototype/.classpath
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-12"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" output="bin" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
50
workspace/fr.n7.game.toPrototype/.project
Normal file
50
workspace/fr.n7.game.toPrototype/.project
Normal file
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>fr.n7.game.toPrototype</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>compilation.kind</key>
|
||||
<value>compilation.platform.resource</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>compliance</key>
|
||||
<value>pragmatic</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>resource.kind</key>
|
||||
<value>xmi</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>trim-position</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
23
workspace/fr.n7.game.toPrototype/META-INF/MANIFEST.MF
Normal file
23
workspace/fr.n7.game.toPrototype/META-INF/MANIFEST.MF
Normal file
|
@ -0,0 +1,23 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Acceleo ToPrototype Module Runtime Plug-in
|
||||
Bundle-SymbolicName: fr.n7.game.toPrototype
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Activator: fr.n7.game.toPrototype.Activator
|
||||
Bundle-Vendor: Eclipse Modeling Project
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.emf.ecore,
|
||||
org.eclipse.emf.ecore,
|
||||
org.eclipse.emf.ecore.xmi,
|
||||
org.eclipse.ocl,
|
||||
org.eclipse.ocl.ecore,
|
||||
org.eclipse.acceleo.common;bundle-version="3.3.0",
|
||||
org.eclipse.acceleo.model;bundle-version="3.3.0",
|
||||
org.eclipse.acceleo.profiler;bundle-version="3.3.0",
|
||||
org.eclipse.acceleo.engine;bundle-version="3.3.0",
|
||||
com.google.guava
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-12
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Eclipse-LazyStart: true
|
||||
Export-Package: fr.n7.game.toPrototype.main
|
||||
|
1
workspace/fr.n7.game.toPrototype/bin/.gitignore
vendored
Normal file
1
workspace/fr.n7.game.toPrototype/bin/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/fr/
|
5
workspace/fr.n7.game.toPrototype/build.properties
Normal file
5
workspace/fr.n7.game.toPrototype/build.properties
Normal file
|
@ -0,0 +1,5 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
jre.compilation.profile = JavaSE-12
|
|
@ -0,0 +1,66 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008, 2011 Obeo.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Obeo - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package fr.n7.game.toPrototype;
|
||||
|
||||
import org.eclipse.core.runtime.Plugin;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
/**
|
||||
* The activator class controls the plug-in life cycle.
|
||||
*/
|
||||
public class Activator extends Plugin {
|
||||
|
||||
/**
|
||||
* The plug-in ID.
|
||||
*/
|
||||
public static final String PLUGIN_ID = "fr.n7.game.toPrototype";
|
||||
|
||||
/**
|
||||
* The shared instance.
|
||||
*/
|
||||
private static Activator plugin;
|
||||
|
||||
/**
|
||||
* The constructor.
|
||||
*/
|
||||
public Activator() {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
|
||||
*/
|
||||
public void start(BundleContext context) throws Exception {
|
||||
super.start(context);
|
||||
plugin = this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
|
||||
*/
|
||||
public void stop(BundleContext context) throws Exception {
|
||||
plugin = null;
|
||||
super.stop(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the shared instance.
|
||||
*
|
||||
* @return the shared instance
|
||||
*/
|
||||
public static Activator getDefault() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,412 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008, 2012 Obeo.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Obeo - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package fr.n7.game.toPrototype.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;
|
||||
|
||||
/**
|
||||
* Entry point of the 'ToPrototype' generation module.
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
public class ToPrototype extends AbstractAcceleoGenerator {
|
||||
/**
|
||||
* The name of the module.
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
public static final String MODULE_FILE_NAME = "/fr/n7/game/toPrototype/main/toPrototype";
|
||||
|
||||
/**
|
||||
* The name of the templates that are to be generated.
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
public static final String[] TEMPLATE_NAMES = { "jeuToPrototype" };
|
||||
|
||||
/**
|
||||
* The list of properties files from the launch parameters (Launch configuration).
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
private List<String> propertiesFiles = new ArrayList<String>();
|
||||
|
||||
/**
|
||||
* Allows the public constructor to be used. Note that a generator created
|
||||
* this way cannot be used to launch generations before one of
|
||||
* {@link #initialize(EObject, File, List)} or
|
||||
* {@link #initialize(URI, File, List)} is called.
|
||||
* <p>
|
||||
* The main reason for this constructor is to allow clients of this
|
||||
* generation to call it from another Java file, as it allows for the
|
||||
* retrieval of {@link #getProperties()} and
|
||||
* {@link #getGenerationListeners()}.
|
||||
* </p>
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
public ToPrototype() {
|
||||
// Empty implementation
|
||||
}
|
||||
|
||||
/**
|
||||
* This allows clients to instantiates a generator with all required information.
|
||||
*
|
||||
* @param modelURI
|
||||
* URI where the model on which this generator will be used is located.
|
||||
* @param targetFolder
|
||||
* This will be used as the output folder for this generation : it will be the base path
|
||||
* against which all file block URLs will be resolved.
|
||||
* @param arguments
|
||||
* If the template which will be called requires more than one argument taken from the model,
|
||||
* pass them here.
|
||||
* @throws IOException
|
||||
* This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
|
||||
* the model cannot be loaded.
|
||||
* @generated
|
||||
*/
|
||||
public ToPrototype(URI modelURI, File targetFolder,
|
||||
List<? extends Object> arguments) throws IOException {
|
||||
initialize(modelURI, targetFolder, arguments);
|
||||
}
|
||||
|
||||
/**
|
||||
* This allows clients to instantiates a generator with all required information.
|
||||
*
|
||||
* @param model
|
||||
* We'll iterate over the content of this element to find Objects matching the first parameter
|
||||
* of the template we need to call.
|
||||
* @param targetFolder
|
||||
* This will be used as the output folder for this generation : it will be the base path
|
||||
* against which all file block URLs will be resolved.
|
||||
* @param arguments
|
||||
* If the template which will be called requires more than one argument taken from the model,
|
||||
* pass them here.
|
||||
* @throws IOException
|
||||
* This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
|
||||
* @generated
|
||||
*/
|
||||
public ToPrototype(EObject model, File targetFolder,
|
||||
List<? extends Object> arguments) throws IOException {
|
||||
initialize(model, targetFolder, arguments);
|
||||
}
|
||||
|
||||
/**
|
||||
* This can be used to launch the generation from a standalone application.
|
||||
*
|
||||
* @param args
|
||||
* Arguments of the generation.
|
||||
* @generated
|
||||
*/
|
||||
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>();
|
||||
|
||||
/*
|
||||
* If you want to change the content of this method, do NOT forget to change the "@generated"
|
||||
* tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
|
||||
* of the Acceleo module with the main template that has caused the creation of this class will
|
||||
* revert your modifications.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Add in this list all the arguments used by the starting point of the generation
|
||||
* If your main template is called on an element of your model and a String, you can
|
||||
* add in "arguments" this "String" attribute.
|
||||
*/
|
||||
|
||||
ToPrototype generator = new ToPrototype(modelURI, folder, arguments);
|
||||
|
||||
/*
|
||||
* Add the properties from the launch arguments.
|
||||
* If you want to programmatically add new properties, add them in "propertiesFiles"
|
||||
* You can add the absolute path of a properties files, or even a project relative path.
|
||||
* If you want to add another "protocol" for your properties files, please override
|
||||
* "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
|
||||
* The behavior of the properties loader service is explained in the Acceleo documentation
|
||||
* (Help -> Help Contents).
|
||||
*/
|
||||
|
||||
for (int i = 2; i < args.length; i++) {
|
||||
generator.addPropertiesFile(args[i]);
|
||||
}
|
||||
|
||||
generator.doGenerate(new BasicMonitor());
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Launches the generation described by this instance.
|
||||
*
|
||||
* @param monitor
|
||||
* This will be used to display progress information to the user.
|
||||
* @throws IOException
|
||||
* This will be thrown if any of the output files cannot be saved to disk.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public void doGenerate(Monitor monitor) throws IOException {
|
||||
/*
|
||||
* TODO if you wish to change the generation as a whole, override this. The default behavior should
|
||||
* be sufficient in most cases. If you want to change the content of this method, do NOT forget to
|
||||
* change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag,
|
||||
* any compilation of the Acceleo module with the main template that has caused the creation of this
|
||||
* class will revert your modifications. If you encounter a problem with an unresolved proxy during the
|
||||
* generation, you can remove the comments in the following instructions to check for problems. Please
|
||||
* note that those instructions may have a significant impact on the performances.
|
||||
*/
|
||||
|
||||
//org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model);
|
||||
|
||||
/*
|
||||
* If you want to check for potential errors in your models before the launch of the generation, you
|
||||
* use the code below.
|
||||
*/
|
||||
|
||||
//if (model != null && model.eResource() != null) {
|
||||
// List<org.eclipse.emf.ecore.resource.Resource.Diagnostic> errors = model.eResource().getErrors();
|
||||
// for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) {
|
||||
// System.err.println(diagnostic.toString());
|
||||
// }
|
||||
//}
|
||||
|
||||
super.doGenerate(monitor);
|
||||
}
|
||||
|
||||
/**
|
||||
* If this generator needs to listen to text generation events, listeners can be returned from here.
|
||||
*
|
||||
* @return List of listeners that are to be notified when text is generated through this launch.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public List<IAcceleoTextGenerationListener> getGenerationListeners() {
|
||||
List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
|
||||
/*
|
||||
* TODO if you need to listen to generation event, add listeners to the list here. If you want to change
|
||||
* the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method
|
||||
* to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template
|
||||
* that has caused the creation of this class will revert your modifications.
|
||||
*/
|
||||
return listeners;
|
||||
}
|
||||
|
||||
/**
|
||||
* If you need to change the way files are generated, this is your entry point.
|
||||
* <p>
|
||||
* The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates
|
||||
* files on the fly. If you only need to preview the results, return a new
|
||||
* {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of
|
||||
* the running Eclipse and can be used standalone.
|
||||
* </p>
|
||||
* <p>
|
||||
* If you need the file generation to be aware of the workspace (A typical example is when you wanna
|
||||
* override files that are under clear case or any other VCS that could forbid the overriding), then
|
||||
* return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}.
|
||||
* <b>Note</b>, however, that this <b>cannot</b> be used standalone.
|
||||
* </p>
|
||||
* <p>
|
||||
* All three of these default strategies support merging through JMerge.
|
||||
* </p>
|
||||
*
|
||||
* @return The generation strategy that is to be used for generations launched through this launcher.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public IAcceleoGenerationStrategy getGenerationStrategy() {
|
||||
return super.getGenerationStrategy();
|
||||
}
|
||||
|
||||
/**
|
||||
* This will be called in order to find and load the module that will be launched through this launcher.
|
||||
* We expect this name not to contain file extension, and the module to be located beside the launcher.
|
||||
*
|
||||
* @return The name of the module that is to be launched.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public String getModuleName() {
|
||||
return MODULE_FILE_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* If the module(s) called by this launcher require properties files, return their qualified path from
|
||||
* here.Take note that the first added properties files will take precedence over subsequent ones if they
|
||||
* contain conflicting keys.
|
||||
*
|
||||
* @return The list of properties file we need to add to the generation context.
|
||||
* @see java.util.ResourceBundle#getBundle(String)
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public List<String> getProperties() {
|
||||
/*
|
||||
* If you want to change the content of this method, do NOT forget to change the "@generated"
|
||||
* tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
|
||||
* of the Acceleo module with the main template that has caused the creation of this class will
|
||||
* revert your modifications.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TODO if your generation module requires access to properties files, add their qualified path to the list here.
|
||||
*
|
||||
* Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse
|
||||
* plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties
|
||||
* files to the "propertiesFiles" list:
|
||||
*
|
||||
* final String prefix = "platform:/plugin/";
|
||||
* final String pluginName = "org.eclipse.acceleo.module.sample";
|
||||
* final String packagePath = "/org/eclipse/acceleo/module/sample/properties/";
|
||||
* final String fileName = "default.properties";
|
||||
* propertiesFiles.add(prefix + pluginName + packagePath + fileName);
|
||||
*
|
||||
* With this mechanism, you can load properties files from your plugin or from another plugin.
|
||||
*
|
||||
* You may want to load properties files from the file system, for that you need to add the absolute path of the file:
|
||||
*
|
||||
* propertiesFiles.add("C:\Users\MyName\MyFile.properties");
|
||||
*
|
||||
* If you want to let your users add properties files located in the same folder as the model:
|
||||
*
|
||||
* if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) {
|
||||
* propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource()));
|
||||
* }
|
||||
*
|
||||
* To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents).
|
||||
*/
|
||||
return propertiesFiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a properties file in the list of properties files.
|
||||
*
|
||||
* @param propertiesFile
|
||||
* The properties file to add.
|
||||
* @generated
|
||||
* @since 3.1
|
||||
*/
|
||||
@Override
|
||||
public void addPropertiesFile(String propertiesFile) {
|
||||
this.propertiesFiles.add(propertiesFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* This will be used to get the list of templates that are to be launched by this launcher.
|
||||
*
|
||||
* @return The list of templates to call on the module {@link #getModuleName()}.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public String[] getTemplateNames() {
|
||||
return TEMPLATE_NAMES;
|
||||
}
|
||||
|
||||
/**
|
||||
* This can be used to update the resource set's package registry with all needed EPackages.
|
||||
*
|
||||
* @param resourceSet
|
||||
* The resource set which registry has to be updated.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public void registerPackages(ResourceSet resourceSet) {
|
||||
super.registerPackages(resourceSet);
|
||||
|
||||
/*
|
||||
* If you want to change the content of this method, do NOT forget to change the "@generated"
|
||||
* tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
|
||||
* of the Acceleo module with the main template that has caused the creation of this class will
|
||||
* revert your modifications.
|
||||
*/
|
||||
|
||||
/*
|
||||
* If you need additional package registrations, you can register them here. The following line
|
||||
* (in comment) is an example of the package registration for UML.
|
||||
*
|
||||
* You can use the method "isInWorkspace(Class c)" to check if the package that you are about to
|
||||
* register is in the workspace.
|
||||
*
|
||||
* To register a package properly, please follow the following conventions:
|
||||
*
|
||||
* If the package is located in another plug-in, already installed in Eclipse. The following content should
|
||||
* have been generated at the beginning of this method. Do not register the package using this mechanism if
|
||||
* the metamodel is located in the workspace.
|
||||
*
|
||||
* if (!isInWorkspace(UMLPackage.class)) {
|
||||
* // The normal package registration if your metamodel is in a plugin.
|
||||
* resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
|
||||
* }
|
||||
*
|
||||
* If the package is located in another project in your workspace, the plugin containing the package has not
|
||||
* been register by EMF and Acceleo should register it automatically. If you want to use the generator in
|
||||
* stand alone, the regular registration (seen a couple lines before) is needed.
|
||||
*
|
||||
* To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents).
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* This can be used to update the resource set's resource factory registry with all needed factories.
|
||||
*
|
||||
* @param resourceSet
|
||||
* The resource set which registry has to be updated.
|
||||
* @generated
|
||||
*/
|
||||
@Override
|
||||
public void registerResourceFactories(ResourceSet resourceSet) {
|
||||
super.registerResourceFactories(resourceSet);
|
||||
/*
|
||||
* If you want to change the content of this method, do NOT forget to change the "@generated"
|
||||
* tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
|
||||
* of the Acceleo module with the main template that has caused the creation of this class will
|
||||
* revert your modifications.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TODO If you need additional resource factories registrations, you can register them here. the following line
|
||||
* (in comment) is an example of the resource factory registration.
|
||||
*
|
||||
* If you want to use the generator in stand alone, the resource factory registration will be required.
|
||||
*
|
||||
* To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents).
|
||||
*/
|
||||
|
||||
// resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(XyzResource.FILE_EXTENSION, XyzResource.Factory.INSTANCE);
|
||||
|
||||
/*
|
||||
* Some metamodels require a very complex setup for standalone usage. For example, if you want to use a generator
|
||||
* targetting UML models in standalone, you NEED to use the following:
|
||||
*/
|
||||
// UMLResourcesUtil.init(resourceSet)
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
[comment encoding = UTF-8 /]
|
||||
[module toPrototype('http://www.n7.fr/xtext/GAME')]
|
||||
|
||||
|
||||
[template public jeuToPrototype(jeu : Jeu)]
|
||||
[comment @main/]
|
||||
[file ('Prototype.java', false, 'UTF-8')]
|
||||
public static void main(String['['/][']'/] args) {
|
||||
|
||||
Condition vraie = new Condition(new ConditionEt(new ConditionBoolean(true)));
|
||||
|
||||
|
||||
List<Objet> jeu_objets = new ArrayList<>();
|
||||
[for (o : Objet | jeu.objets)]
|
||||
List<Description> objet_[o.nom.nom/]_descriptions = new new ArrayList<>();
|
||||
[for (d : Description | o.descriptions)]
|
||||
objet_[o.nom.nom/]_descriptions.add(
|
||||
new Description(
|
||||
[d.texte/],
|
||||
vraie));
|
||||
[/for]
|
||||
|
||||
Objet objet_[o.nom.nom/] = new Objet(
|
||||
[o.nom.nom/],
|
||||
[o.taille/],
|
||||
vraie,
|
||||
objet_[o.nom/]_descriptions);
|
||||
jeu_objets.add(tentative_objet);
|
||||
[/for]
|
||||
|
||||
}
|
||||
[/file]
|
||||
[/template]
|
||||
|
||||
|
66
workspace/fr.n7.game.toPrototype/tasks/toPrototype.xml
Normal file
66
workspace/fr.n7.game.toPrototype/tasks/toPrototype.xml
Normal file
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project default="toPrototype" name="fr.n7.game.toPrototype">
|
||||
<property name="ECLIPSE_HOME" value="../../../../../../../../mnt/n7fs/ens/tp_cregut/eclipse-gls-2020-09"/>
|
||||
<property name="ECLIPSE_WORKSPACE" value="../.."/>
|
||||
|
||||
<!-- The classpath with only the dependencies used by the project -->
|
||||
<path id="fr.n7.game.toPrototype.libraryclasspath">
|
||||
<pathelement location="${ECLIPSE_WORKSPACE}/fr.n7.game.toPrototype/bin"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.19.0.v20200724-1004.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.16.0.v20200828-0759.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.2.100.v20200811-1344.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.13.0.v20200828-1034.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.10.800.v20200421-0950.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.9.0.v20200625-1425.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.8.0.v20200422-1833.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.7.800.v20200724-0804.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.5.0.v20200717-0620.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.23.0.v20200630-0516.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.20.0.v20200822-0801.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.16.0.v20190528-0725.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.15.100.v20201208-2229.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.8.500.v20201208-2229.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.15.100.v20201208-2229.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.7.11.202102190929.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.7.11.202102190929.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.7.11.202102190929.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.7.11.202102190929.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.23.0.v20200701-0840.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.21.0.v20200708-0547.jar"/>
|
||||
<pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_27.1.0.v20190517-1946.jar"/>
|
||||
</path>
|
||||
|
||||
<path id="fr.n7.game.toPrototype.classpath">
|
||||
<path refid="fr.n7.game.toPrototype.libraryclasspath"/>
|
||||
</path>
|
||||
|
||||
<!-- The classpath with only the jars available in the plugin folder of Eclipse -->
|
||||
<path id="fr.n7.game.toPrototype.libraryclasspath.alljars">
|
||||
<pathelement location="../fr.n7.game.toPrototype/bin"/>
|
||||
<fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
|
||||
</path>
|
||||
|
||||
<path id="fr.n7.game.toPrototype.classpath.alljars">
|
||||
<path refid="fr.n7.game.toPrototype.libraryclasspath.alljars"/>
|
||||
</path>
|
||||
|
||||
<!-- The default task with the jars used by this project -->
|
||||
<target name="toPrototype">
|
||||
<java classname="fr.n7.game.toPrototype.main.ToPrototype" classpathref="fr.n7.game.toPrototype.classpath">
|
||||
<arg value="${model}"/>
|
||||
<arg value="${target}"/>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
In case of problem you can also try with all the jar available in your Eclipse
|
||||
Keep in mind that having two versions of the same jar can create problems
|
||||
-->
|
||||
<target name="toPrototype.alljars">
|
||||
<java classname="fr.n7.game.toPrototype.main.ToPrototype" classpathref="fr.n7.game.toPrototype.classpath">
|
||||
<arg value="${model}"/>
|
||||
<arg value="${target}"/>
|
||||
</java>
|
||||
</target>
|
||||
</project>
|
19
workspace/fr.n7.game.toPrototype/tasks/toPrototypeTarget.xml
Normal file
19
workspace/fr.n7.game.toPrototype/tasks/toPrototypeTarget.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
|
||||
<!-- You have to change the MODEL and the TARGET values -->
|
||||
|
||||
<project basedir="." default="toPrototypeSample" name="fr.n7.game.toPrototypeSample">
|
||||
<import file="../../fr.n7.game.toPrototype/tasks/toPrototype.xml"/>
|
||||
|
||||
<!-- Change the values of MODEL and TARGET to point to your model and output folder -->
|
||||
<property name="MODEL" value="${basedir}/model/file.xmi"/>
|
||||
<property name="TARGET" value="${basedir}/src-gen"/>
|
||||
|
||||
<target name="toPrototypeSample" description="Generate files in 'TARGET'">
|
||||
<antcall target="toPrototype" >
|
||||
<param name="model" value="${MODEL}"/>
|
||||
<param name="target" value="${TARGET}"/>
|
||||
</antcall>
|
||||
</target>
|
||||
</project>
|
Loading…
Reference in a new issue