Examples

Here you can download some examples to get and idea of the things AGE can do, and as a way to start using AGE. They are few simple examples, but we hope to provide new examples soon.

Class2Java

Download the example

This is example provides three transformations between a simplified UML-like class model and a Java model. The transformations are organized in an increasing level of complexity:

  1. class2java-simple.rb This transformation only deals with transforming classes into Java classes, and attributes into a private field plus a get and set method. In addition, it provides methods to convert an arbitrary naming style to the Java convention. It is an example of the use of Ruby code when doing certain tranformation tasks.
  1. class2java-operations.rb This transformation, in addition, transforms class operations into Java methods, and it handles the situation of name clashes. Also, it creates a package to place the generated Java classes.

  1. class2java-inherit-simple.rb To deal with multiple inheritance, an interface is generated for every class. Then, when transforming a class with more than one parent class, one of them will be selected to be the superclass and the rest will be interfaces. The criterion is to select the base class with more methods.

There is also a model-to-code transformation that shows how to use transformation rules to map model elements to code, instead of using templates.

Class2Table

Download the example

This example, which is used in the tutorial, includes model transformation, code generation and model validation tasks.

Examination assistant

Download the example

This example shows how the phasing mechanism provided by RubyTL can be used to improve modularity of a transformation definition. The example comes from this paper.

RubyTL2ATC

Download the example

This transformation is a proof of concept that transform a simple metamodel-based RubyTL (called RubyTL-M), in the ATC specific low-level transformation language.

Performance evaluation

Download the evaluation files

Here you can find some transformations to compare runtime performance between RubyTL, ATL and MOFScript.

Attachments