Substitution Examples

Field substitution macros can be used in one of two ways:

Direct Substitution or
Conditional Substitution

Direct Substitution:

This form directly substitutes the corresponding value of the element in scope into the output.

Structure: %<macroName>%

Where <macroName> can be any of the macros listed in the Field Substitution Macros tables.



Conditional Substitution

This form of the macro enables alternative substitutions to be made depending on the macro's value.

Structure: %<macroName> (  == "<test>" )  ? <subTrue> (  : <subFalse>  ) %


(  <text>  ) denotes that <text> is optional
<test> is a string representing a possible value for the macro
<subTrue> and <subFalse> can be a combination of quoted strings and the keyword value; where the value is used, it is replaced with the macro's value in the output.


%classAbstract=="T" ? "pure" : ""%
%opStereotype=="operator" ? "operator" : ""%
%paramDefault != "" ? " = " value : ""%

The above three examples output nothing if the condition fails. In this case the false condition can be omitted, resulting in the following usage:.

%classAbstract=="T" ? "pure"%
%opStereotype=="operator" ? "operator"%
%paramDefault != "" ? " = " value%

The third example of both blocks shows a comparison checking for a non-empty value or existence.  This test can also be omitted.

%paramDefault ? " = " value : ""%
%paramDefault ? " = " value%

All of the above examples containing paramDefault are equivalent.  If the parameter in scope had a default value of 10, the output from each of them would normally be:

 = 10


In a conditional substitution macro, any white space following <macroName> is ignored; if white space is required in the output, it should be included within the quoted substitution strings

Learn more