while (condition) { body }
where:
The while statement processes the code between the braces while the condition evaluates to true.
You may leave the while loop using the break directive.
This code processes a UML element and its owners and calls a rule with each name as argument:
element : uml21.Element = ...; while (element != null) @myRule(element.name); element = element.owner; }
We could decide to break the loop when we encouter the name 'AccountPackage':
myPackage : uml21.Package = ...; element : uml21.Element = ...; while (element != null) // break if we encounter an 'AccountPackage' name if (element.name == "AccountPackage") { break; } @myRule(element.name); element = element.owner; }