[Lutingenerator-commits] r414 - lutingenerator/trunk/src/main/xsl
Author: schorlet Date: 2009-02-04 08:46:11 +0000 (Wed, 04 Feb 2009) New Revision: 414 Modified: lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl Log: returnParameter des operation sur les class Modified: lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl =================================================================== --- lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl 2009-02-03 20:57:21 UTC (rev 413) +++ lutingenerator/trunk/src/main/xsl/xmi2.2ToObjectModel.xsl 2009-02-04 08:46:11 UTC (rev 414) @@ -16,6 +16,9 @@ <xsl:param name="fullPackagePath" /> <xsl:param name="extraPackages" /> + <!-- TODO: replace(@name, '::', '.') --> + <xsl:variable name="modelName" select="/xmi:XMI/uml:Model/@name"/> + <!-- . Matching templates --> @@ -23,13 +26,12 @@ <xsl:template match="/xmi:XMI/uml:Model"> <xsl:element name="objectModel"> <xsl:attribute name="name"> - <xsl:value-of select="@name" /> + <xsl:value-of select="$modelName" /> </xsl:attribute> <xsl:apply-templates> - <!-- TODO: replace(@name, '::', '.') --> <xsl:with-param name="parentLocalPackageName" - select="@name" /> + select="$modelName" /> </xsl:apply-templates> </xsl:element> </xsl:template> @@ -94,6 +96,10 @@ <!-- class attributes --> <xsl:apply-templates select="ownedAttribute" /> + + <!-- class operations --> + <xsl:apply-templates select="ownedOperation" /> + </xsl:element> </xsl:template> @@ -112,10 +118,99 @@ </xsl:element> </xsl:template> + <xsl:template match="ownedOperation"> + + <xsl:element name="operation"> + <xsl:attribute name="name"> + <xsl:value-of select="@name" /> + </xsl:attribute> + + <!-- operation parameters --> + <xsl:for-each select="ownedParameter"> + <xsl:choose> + <xsl:when test="@direction = 'return'"> + <xsl:call-template name="UMLReturnParameter" /> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="UMLParameter" /> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + + </xsl:element> + </xsl:template> + + <!-- . Named templates --> + <xsl:template name="UMLParameter"> + </xsl:template> + + <xsl:template name="UMLReturnParameter"> + <xsl:element name="returnParameter"> + + <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="fullClassName2"> + <xsl:param name="node" /> + + <xsl:choose> + <xsl:when test="$node[@xmi:type = 'uml:Class']"> + <xsl:call-template name="fullClassName2"> + <xsl:with-param name="node" + select="$node/ancestor::packagedElement[@xmi:type = 'uml:Package']" /> + </xsl:call-template> + <xsl:value-of select="$node/@name" /> + </xsl:when> + + <xsl:when test="$node[@xmi:type='uml:Package']"> + <xsl:choose> + <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']" /> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="fullClassName2"> + <xsl:with-param name="node" + select="$node/ancestor::uml:Model" /> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + <xsl:value-of select="concat($node/@name, '.')" /> + </xsl:when> + + <xsl:when test="$node[name()='uml:Model']"> + <xsl:value-of select="concat($modelName, '.')"/> + </xsl:when> + </xsl:choose> + </xsl:template> + <xsl:template name="fullClassName"> <xsl:param name="childpath" /> <xsl:variable name="child"
participants (1)
-
schorletï¼ users.labs.libre-entreprise.org