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 com.sodius.mdw.samples.tutorial/src/tutorial/java and is opened in an editor.
package tutorial.java;
public ruleset JavaGeneration(in model : uml21) {
public rule main() {
foreach (class : uml21.Class in model.getInstances("Class")) {
$JavaSource(class);
}
}
}
Here is the behavior of this ruleset:
Class in the input UML model,
using model.getInstances("Class").foreach
and the loop variable class of type UML 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.