Author: jbeard
Date: Sun Jun 27 00:32:26 2010
New Revision: 958300
URL: http://svn.apache.org/viewvc?rev=958300&view=rev
Log:
Test passes for state pattern.
Modified:
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractEnumeratedStatechartGenerator.xsl
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractStatechartGenerator.xsl
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/StatePatternStatechartGenerator.xsl
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/test/in_predicate/scripts/unitTest.js
Modified:
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractEnumeratedStatechartGenerator.xsl
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractEnumeratedStatechartGenerator.xsl?rev=958300&r1=958299&r2=958300&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractEnumeratedStatechartGenerator.xsl
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractEnumeratedStatechartGenerator.xsl
Sun Jun 27 00:32:26 2010
@@ -216,17 +216,6 @@
<template name="genEnumeratedHooks"/>
<template name="genTriggerIntEnum"/>
- <variable name="genInPredicateFunction">
- function In(state){
- state = typeof state == "string" ? self._states[state]
: state;
-
- return state.isBasic ?
- currentConfiguration.indexOf(state.id) != -1 :
- currentConfiguration.some(function(s){
- return
s.ancestors.indexOf(state.id) != -1;
- });
- }
- </variable>
</stylesheet>
Modified:
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractStatechartGenerator.xsl
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractStatechartGenerator.xsl?rev=958300&r1=958299&r2=958300&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractStatechartGenerator.xsl
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/AbstractStatechartGenerator.xsl
Sun Jun 27 00:32:26 2010
@@ -178,6 +178,31 @@
this.historyState = null;
+ //these variables facilitate fast In predicate
+ this.isBasic =
+ <choose>
+ <when test="$state/@c:isBasic">
+ true;
+ </when>
+ <otherwise>
+ false;
+ </otherwise>
+ </choose>
+
+ <!-- only basic states need this property -->
+ <if test="$state/@c:isBasic">
+ this.ancestors = [
+ <for-each
select="$state/ancestor::*">
+ <value-of select="@id"/>
+ <if test="position() !=
last()">
+ ,
+ </if>
+ </for-each>
+ ];
+ </if>
+
+
+
<if test="$state/self::s:history">
this.parent.historyState = this; //init
parent's pointer to history state
</if>
@@ -731,7 +756,17 @@
<template name="genInitialization"/>
<template name="genTriggerDispatcherContext"/>
- <variable name="genInPredicateFunction"/>
+ <variable name="genInPredicateFunction">
+ function In(state){
+ state = typeof state == "string" ? self._states[state]
: state;
+
+ return state.isBasic ?
+ currentConfiguration.indexOf(state) != -1 :
+ currentConfiguration.some(function(s){
+ return
s.ancestors.indexOf(state) != -1;
+ });
+ }
+ </variable>
</stylesheet>
Modified:
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/StatePatternStatechartGenerator.xsl
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/StatePatternStatechartGenerator.xsl?rev=958300&r1=958299&r2=958300&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/StatePatternStatechartGenerator.xsl
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/src/xslt/backends/js/StatePatternStatechartGenerator.xsl
Sun Jun 27 00:32:26 2010
@@ -162,16 +162,4 @@
</choose>
</template>
- <variable name="genInPredicateFunction">
- function In(state){
- state = typeof state == "string" ? self._states[state]
: state;
-
- return state.isBasic ?
- currentConfiguration.indexOf(state) != -1 :
- currentConfiguration.some(function(s){
- return
s.ancestors.indexOf(state) != -1;
- });
- }
- </variable>
-
</stylesheet>
Modified:
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/test/in_predicate/scripts/unitTest.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/test/in_predicate/scripts/unitTest.js?rev=958300&r1=958299&r2=958300&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/test/in_predicate/scripts/unitTest.js
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-140/test/in_predicate/scripts/unitTest.js
Sun Jun 27 00:32:26 2010
@@ -77,7 +77,7 @@ require.def( "test/in_predicate/scripts/
console.info("sending event t6")
sc.t6()
- var conf5 =
sc.getCurrentConfiguration();
+ var conf6 =
sc.getCurrentConfiguration();
console.log($(conf6));
doh.assertTrue(setwiseEqual(conf6,[sc._states.g1,sc._states.b2]));
@@ -101,7 +101,7 @@ require.def( "test/in_predicate/scripts/
console.info("sending event
t10")
sc.t10()
- var conf9 =
sc.getCurrentConfiguration();
+ var conf10 =
sc.getCurrentConfiguration();
console.log($(conf10));
doh.assertTrue(setwiseEqual(conf10,[sc._states.k1,sc._states.e2]));
},