You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by jb...@apache.org on 2010/06/12 21:39:42 UTC
svn commit: r954097 -
/commons/sandbox/gsoc/2010/scxml-js/trunk/test/xslt/numberStatesAndTransitions.xsl
Author: jbeard
Date: Sat Jun 12 19:39:41 2010
New Revision: 954097
URL: http://svn.apache.org/viewvc?rev=954097&view=rev
Log:
Added transitions back in.
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/test/xslt/numberStatesAndTransitions.xsl
Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/test/xslt/numberStatesAndTransitions.xsl
URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/test/xslt/numberStatesAndTransitions.xsl?rev=954097&r1=954096&r2=954097&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/test/xslt/numberStatesAndTransitions.xsl (original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/test/xslt/numberStatesAndTransitions.xsl Sat Jun 12 19:39:41 2010
@@ -10,6 +10,8 @@
<xsl:variable name="states"
select="//*[self::s:state or self::s:parallel or self::s:final or self::s:initial or self::s:history]" />
+ <xsl:variable name="transitions" select="//s:transition"/>
+
<!--
<xsl:template match="/">
<xsl:for-each select="$states">
@@ -52,10 +54,12 @@
<xsl:for-each select="$states">
<xsl:if test="@id = $stateId">
+ <!--
<xsl:message>
stateid : <xsl:value-of select="$stateId"/>
- stateNum : <xsl:value-of select="position()"/>
+ stateNum : <xsl:number select="position()"/>
</xsl:message>
+ -->
<xsl:attribute name="stateNum" namespace="http://msdl.cs.mcgill.ca/">
<xsl:value-of select="position()"/>
@@ -67,6 +71,40 @@
</xsl:copy>
</xsl:template>
+ <xsl:template match="s:transition">
+
+ <xsl:variable name="tName">
+ <xsl:value-of select="@c:tName"/>
+ </xsl:variable>
+
+ <!-- what we want to ask is, what is his position in the nodeset that we've constructed?
+ but we can't use position normally... can only be used wrt to the context node
+ i think the easiest thing to think about is just iterating through these state nodes in a for-each
+ fashion. but... yah, can't do that in the top-down recursive manner that we're doing.
+
+ -->
+
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+
+ <!-- FIXME: subtract 1 for 0-based indexing in generated code?
+ No, we probably want to adjust this in the code generator-->
+ <!--FIXME: there has GOT to be a more efficient way to do this
+ the way I'm doing it now takes an O(n) operation and makes it into an O(n^2) op. really bad)
+ but it's not clear how else to get the position of a given node out of a node list...
+ -->
+ <xsl:for-each select="$transitions">
+ <xsl:if test="@c:tName = $tName">
+
+ <xsl:attribute name="tNum" namespace="http://msdl.cs.mcgill.ca/">
+ <xsl:value-of select="position()"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:apply-templates select="node()"/>
+ </xsl:copy>
+ </xsl:template>
</xsl:stylesheet>