ATLflow help

The process model

  1. The process model
    1. Instructions
    2. Models and meta models
    3. Callables
      1. Evaluateables
      2. Call, the atl model transformation
      3. Generator
      4. External Call
      5. Stop Call
    4. Switch elements
    5. Predicates
      1. element predicates
      2. Logical predicates

Instructions

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 and meta models


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

Callables

Callables are execution elements and linked together, they are the functions in the transformation flow.

Evaluateables

Evaluateables can have a predicate to define if the callable is executed, if no predicate is defined the call is also executed (in short : null evaluates to true).

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;

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 modeling transformation process.

Generator

The generators are normally a piece of external code, it uses artifacts and produce artifacts. Generators are defined by an extensions point. So if you need an other generator type you could define it as an extra plugin. See extensions point

Description of the available 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 or set the value if the property exist.

Stop Call

The Stop Call element define the end of a transformation flow, it is needed if a switch transition will define an end of the flow, as we demand that all default transitions like true and false are defined.

Switch elements

Switch elements are use to define conditional branching in a 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

Predicates can evaluate to true or false. They are created as child’s from predicate switches and from other predicates. You can create the from the context menu in the outline.

element predicates

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 boolean predicate will evaluate to the boolean value.
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.