[Lutingenerator-commits] r415 - lutingenerator/trunk/src/main/xsl
Author: schorlet Date: 2009-02-05 14:43:52 +0000 (Thu, 05 Feb 2009) New Revision: 415 Modified: lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl Log: parameter des operations sur les class TODO: besoin d'un resolver pour les resources externes Modified: lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl =================================================================== --- lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl 2009-02-04 08:46:11 UTC (rev 414) +++ lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl 2009-02-05 14:43:52 UTC (rev 415) @@ -17,7 +17,7 @@ <xsl:param name="extraPackages" /> <!-- TODO: replace(@name, '::', '.') --> - <xsl:variable name="modelName" select="/xmi:XMI/uml:Model/@name"/> + <xsl:variable name="modelName" select="/xmi:XMI/uml:Model/@name" /> <!-- . Matching templates @@ -146,6 +146,33 @@ --> <xsl:template name="UMLParameter"> + <xsl:element name="parameter"> + <xsl:attribute name="name"> + <xsl:value-of select="@name" /> + </xsl:attribute> + + <xsl:choose> + <xsl:when test="type"> + <xsl:attribute name="type"> + <xsl:call-template name="fullClassName"> + <xsl:with-param name="childpath">type</xsl:with-param> + </xsl:call-template> + </xsl:attribute> + </xsl:when> + + <xsl:when test="@type"> + <xsl:attribute name="type"> + <xsl:variable name="typeref" + select="/xmi:XMI/uml:Model/descendant::packagedElement[@xmi:type='uml:Class'][@xmi:id=current()/@type]" /> + <xsl:call-template name="fullClassName2"> + <xsl:with-param name="node" + select="$typeref" /> + </xsl:call-template> + </xsl:attribute> + </xsl:when> + + </xsl:choose> + </xsl:element> </xsl:template> <xsl:template name="UMLReturnParameter"> @@ -165,7 +192,8 @@ <xsl:variable name="typeref" select="/xmi:XMI/uml:Model/descendant::packagedElement[@xmi:type='uml:Class'][@xmi:id=current()/@type]" /> <xsl:call-template name="fullClassName2"> - <xsl:with-param name="node" select="$typeref" /> + <xsl:with-param name="node" + select="$typeref" /> </xsl:call-template> </xsl:attribute> </xsl:when> @@ -189,7 +217,8 @@ <xsl:when test="$node[@xmi:type='uml:Package']"> <xsl:choose> - <xsl:when test="$node/ancestor::packagedElement[@xmi:type = 'uml:Package']"> + <xsl:when + test="$node/ancestor::packagedElement[@xmi:type = 'uml:Package']"> <xsl:call-template name="fullClassName2"> <xsl:with-param name="node" select="$node/ancestor::packagedElement[@xmi:type = 'uml:Package']" /> @@ -206,7 +235,7 @@ </xsl:when> <xsl:when test="$node[name()='uml:Model']"> - <xsl:value-of select="concat($modelName, '.')"/> + <xsl:value-of select="concat($modelName, '.')" /> </xsl:when> </xsl:choose> </xsl:template> @@ -217,12 +246,24 @@ select="child::*[name() = $childpath]" /> <xsl:if test="$child"> + <xsl:variable name="typeref" select="$child/@href" /> <xsl:choose> <xsl:when test="$child/@xmi:type = 'uml:PrimitiveType'"> <xsl:value-of - select="substring-after($child/@href, '#')" /> + select="substring-after($typeref, '#')" /> </xsl:when> + <xsl:when test="$child/@xmi:type = 'uml:Class'"> + <xsl:variable name="external-url" + select="substring-before($typeref, '#')" /> + <xsl:variable name="external-id" + select="substring-after($typeref, '#')" /> + <xsl:call-template name="fullClassName2"> + <!-- TODO: create resolver for external resources --> + <xsl:with-param name="node" + select="document(concat('file:///home/sch/tmp/uml/', $external-url))/xmi:XMI/uml:Model/descendant::packagedElement[@xmi:type='uml:Class'][@xmi:id=$external-id]" /> + </xsl:call-template> + </xsl:when> </xsl:choose> </xsl:if> </xsl:template>
participants (1)
-
schorletï¼ users.labs.libre-entreprise.org