“…(1) <c:setVariable select= ''$ownedOperation/ ownedParameter[not(@direction='return')]" var="ImputParams"/> (2) <c:setVariable select= ''$ownedOperation/ ownedParameter[@direction='return']" var="OutputParams"/> (3) package <c:get select="$xmi/package/@name" / >; (4) public aspect Aspect_<c:get select="$xmi/ package/@name" />_<c:get select=$packagedElement/@name" />_<c:get select="$ownedOperation/@name"/>{ (5) pointcut PC_<c:get select="$packagedElement/@name" />_<c:get select= ''$ownedOperation/@name" /> (<c:iterate select="$ImputParams" var="myOwnedParameter" delimiter=", ''><c:get select="substringafter($myOwnedParameter/type/@href, '#')"/ > <c:get select="$myOwnedParameter/@name"/ ></c:iterate>): execution( * <c:get select="$packagedElement/@name" (6) <c:get select="$ownedOperation/@name" / >(<c:iterate select="$ImputParams" var="myOwnedParameter" delimiter=", ''><c:get select="substringafter($myOwnedParameter/type/@href, '#')"/ ></c:iterate>))&&args(<c:iterate select="$ImputParams" var="myOwnedParameter" delimiter=", ''><c:get select="$myOwnedParameter/@name"/ ></c:iterate>); <c:get select="substringafter($OutputParams/type/@href, '#')"/> around(<c:iterate select="$ImputParams" var="myOwnedParameter" delimiter=", ''><c:get select="substringafter($myOwnedParameter/type/@href, '#')"/ > <c:get select="$myOwnedParameter/@name"/ ></c:iterate>): PC_<c:get select="$packagedElement/@name" />_<c:get select="$ownedOperation/@name" /> (<c:iterate select="$ImputParams" var="myOwnedParameter" delimiter=", ''><c:get select="$myOwnedParameter/@name"/ ></c:iterate>){ (7) deviceType device= MyHandlerClass.getDeviceType(); (8) <c:get select="substringafter($OutputParams/type/@href, '#')"/>_Extended tmp = (<c:get select="substring-after ($OutputParams/type/@href, '#')"/ >_Extended) proceed((<c:iterate select="$ImputParams" var="myOwnedParameter" delimiter=", ''><c:get select="substringafter($myOwnedParameter/type/@href, '#')"/ > <c:get select="$myOwnedParameter/@name"/ ></c:iterate>); (9) if (device==deviceType.CLDC){ <c:get select="substringafter($OutputParams/type/@href, '#')"/>_Base tmp2 = tmp.convertToBase(); tmp=tmp2;} (10) return tmp; } } This template code is executed after the main template one's, in which, through a set of iterations, we move along the XMI file and specify that this code should be generated for all Web service operations stereotyped with <<ws4mmd>> in the UML model. Thus, as a result an aspect is generated for each operation which is also going to be offered for mobile devices.…”