The process model

Instructions

The process model contains the elements you use to define your transformation flow. The basic elements are artifacts, generators and calls. 

The calls element is the main container element.

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, witch can be overridden by values supplied by the launch configuration.

The properties.

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.

callable

These are the basic building blocks.

artifacts


Models and meta models

models and metamodels

Models have to conform to meta models. And the meta model has a handler which defines and handles  the MOF.

Call, the atl model transformation

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;

call defined

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,

chain of callabels

Generator

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.

callchain generator

Implemented are currently only some generators from topcased :

topcased uml importer topcased generators emf generators

And the GMF generators


External Call



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.

Switch elements

callchain switches
The switch elemets can be used to change the behavior of the transformation flow.


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.

Predicates

callchain_predicates
Predicates can evaluate to true or false. They are created as child's from predicate swtiches and from other predicates. You can create the from the context menu in the outline.
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.


Logical predicates

Logical predicates contains other predicates the basic logical blocks are available.

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.