--------------------------------------------------------------------------------
-- Acceleo 3 Task
--------------------------------------------------------------------------------

--- Platform
Validated with EGF 0.6.0, and Acceleo-SDK-3.0.1

--- Example
The example is the located in the egf folder.
This example generate classes from the Library ecore model.

--- Practice
* How to create and execute an Acceleo3 Task?
1. Creation of a new Acceleo3 Task with EGF:
	Precondition:
		- The Acceleo3 generation file already exists
 
	1.1. Creation in a new fcore file
   		- In a folder, [File / New / Other... / EGF / EGF Activity]
   		- In the Task, set "kind" to "Acceleo3"
	OR
	1.1. Creation in an existing fcore file
   		- On a factory component or task, [New Sibling / Task Acceleo3]

	1.2. Set the name of the task

	1.3. Declaration of the implementation
		- In the implementation property, select a generation Java file 

	1.4. Creation of the parameters
		- On the Acceleo task, creation of the parameter container [New Child / Contract Container]
		- "Model URI" Parameter.
			New In parameter (contract), Name = "modelURI"
			New child, Type URI - In "Value" Property, Path expected, such as "platform:/resource/org.eclipse.egf.usecase.acceleo3/models/extlibrary.ecore"     
		- "output" Parameter.
			New In parameter (contract), Name = "output"
			New child, Type String - In "Value" Property, Path expected, such as "/org.eclipse.egf.usecase.acceleo3/output"     

2. Execution of an Acceleo3 task:
	Precondition:
		- Validity of the generation file 
		- Existence of the source model
		- Existence of the output directory as specified 
 
	2.1. On the fcore file when just one task, or on the task, "Run EGF Activity..."
	2.2. The result is in the output directory - Refresh required
 