The process model contains the elements you use to define your transformation flow. The basic elements are artifacts, generators and calls.
The artifact has an uri and a name. So it could represent any kind of resource, like a file, a directory, a network location. A model is a specialize kind of artifact, it can conform to a meta model. Meta models have a handler tighten them to a MOF. ATL specific resource are the AtlRes and the AtlLibary these are local files. An atl transformation can have severals superimposed atl transformations. Properties are placeholder for values, the artifact name and uri can contain references to properties. Just like ant properties they are defined by the ${XXX} notation. A property has a default value, replacing the notation, which can be overridden by values supplied by the launch configuration.
Generators and Calls are function elements, they use artifacts and can produce artifacts. And they are callables, they can be linked together by the next feature.
These are the basic building blocks.
Models have to conform to meta models. And the meta model has a handler which defines and handles the MOF.
This describes the call, what is done with all these things. A call and a generator has the capability to produce artifacts. There are also callable, so they can be chained via the next feature. |
A call is an atl transformation defined by an AtlRes element as artifact it points to an valid ATL file. You can add several atl libraries and superimpose the transformation with other AtlRes elements.
The call need several input models, the name of the model must match the names define in the transformation.
create OUT : GMF_MAP from IN : ECORE,TOOL : GMF_TOOL,GRAPH : GMF_GRAPH, GRAPH_CUSTOM : GMF_GRAPH;
It can produces several output models
create OUT : GMF_MAP from ...
A query transformation can produce any type of artifact instead of a model.
Calls and generators are callable they can be linked together as a chain. This chain is a generation process,
The generators are normally a piece of external code, it uses artifacts and produce artifacts. Generators are define able by an extensions point <id>. So if you need an other generator type you could define it as an extra plugin. At the moment only the displayed generators are available.
An
external call is a kind of
subprocess, it will execute the delegated call and afterwards the
call in the nextCallFeature. The delegated call could be defined in
another file. The properties in delegated call scope will be added to
the sub callable scope. |
The predicate switch is configured by a predicate and has the TRUE and FALSE transition. | |
The property value switch
reference a property and has
transitions named like the property value and a DEFAULT transition if
no transition
name is equals the property value. |
The property
exist predicate evaluate to true if an property with this name is define
in the calls model. |
|
The property
has value predicate evaluates to true if the referenced property has
the value of the predicate. |
|
The resource
exist property evaluate to true if the referenced resource exist. |
The not predicate
will negate the contained predicate |
|
The or
predicate evaluate to true if one of the contained predicates is true. |
|
The and predicate evaluates to true if all the contained predicates are true. |