In previous step, we created a text template expecting a UML Class parameter to generate a Java source file. Now we want to iterate on all classes of a UML model and generate the Java source file for each of these classes. This is done using a ruleset.
A ruleset is a group of logically interdependent rules, where a rule defines a set of procedural expressions that query or update model elements.
To create a ruleset:


A file JavaGeneration.mqr is created in the folder JavaGeneration/src/tutorial/java and is opened in an editor.
package tutorial.java;
public ruleset JavaGeneration(in model : rhapsody) {
public rule main() {
foreach (class : rhapsody.Class in model.getInstances("Class")) {
$JavaSource(class);
}
}
}
Here is the behavior of this ruleset:
Class in the input Rational Rhapsody project,
using model.getInstances("Class").
foreach
and the loop variable class of type Rational Rhapsody Class.
JavaSource with the class variable as argument
('$' is the notation used to call a text template).
The referenced template is evaluated and the generated contents is written on disk.
Next Section: Run the generation
Prev Section: Create a Java generation template