You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ra...@apache.org on 2008/03/08 00:19:02 UTC
svn commit: r634858 [2/2] - in /commons/proper/scxml/branches/J5: ./
src/main/java/org/apache/commons/scxml/env/javascript/
src/test/java/org/apache/commons/scxml/
src/test/java/org/apache/commons/scxml/env/javascript/
Added: commons/proper/scxml/branches/J5/src/test/java/org/apache/commons/scxml/env/javascript/example-01.xml
URL: http://svn.apache.org/viewvc/commons/proper/scxml/branches/J5/src/test/java/org/apache/commons/scxml/env/javascript/example-01.xml?rev=634858&view=auto
==============================================================================
--- commons/proper/scxml/branches/J5/src/test/java/org/apache/commons/scxml/env/javascript/example-01.xml (added)
+++ commons/proper/scxml/branches/J5/src/test/java/org/apache/commons/scxml/env/javascript/example-01.xml Fri Mar 7 15:18:48 2008
@@ -0,0 +1,149 @@
+<?xml version="1.0"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!-- SCXML Javascript environment: example script -->
+<scxml xmlns = 'http://www.w3.org/2005/07/scxml'
+ xmlns:scxml = 'http://commons.apache.org/scxml'
+ initialstate = 'start'
+ version = '1.0'>
+
+ <!-- DATA MODEL -->
+
+ <datamodel>
+ <data name='jungle'>
+ <animals xmlns=''>
+ <lion>
+ <name>Simba</name>
+ <age>12</age>
+ </lion>
+ <tiger>
+ <name>Sher Khan</name>
+ <age>13</age>
+ </tiger>
+ </animals>
+ </data>
+ </datamodel>
+
+ <!-- INITIALISATION -->
+
+ <state id='start'>
+ <onentry>
+ <log expr='"Starting Javascript sample script: " + new Date()' />
+ </onentry>
+ <transition target='javascript' />
+ </state>
+
+ <!-- JAVASCRIPT -->
+
+ <state id='javascript'>
+ <onentry>
+ <scxml:var name='factorial' expr='new Function("N","if (N == 1)
+ return N;
+ else
+ return N * factorial(N-1)")' />
+ </onentry>
+ <initial>
+ <transition target='javascript.simple' />
+ </initial>
+
+ <!-- SIMPLE JAVASCRIPT EXPRESSIONS -->
+
+ <state id='javascript.simple'>
+ <onentry>
+ <log expr='"Arithmetic: " + (1 + 2 + 3 + 4 + 5)' />
+ <log expr='"Boolean : " + ((1 + 2) < (3 + 4))' />
+ <log expr='"String : " + "QWERTY"' />
+ </onentry>
+ <transition target='javascript.var' />
+ </state>
+
+ <!-- SCXML VAR -->
+
+ <state id='javascript.var'>
+ <onentry>
+ <scxml:var name='snake_name' expr='"Kaa"' />
+ <scxml:var name='snake_age' expr='"99"' />
+ <log expr='"Snake: " + snake_name + "," + (snake_age + 1)' />
+ </onentry>
+ <transition target='javascript.datamodel' />
+ </state>
+
+ <!-- SCXML DATA MODEL -->
+
+ <state id='javascript.datamodel'>
+ <onentry>
+ <log expr='"Lion : " + Data(jungle,"animals/lion/name") + "," + Data(jungle,"animals/lion/age")' />
+ <log expr='"Tiger: " + Data(jungle,"animals/tiger/name") + "," + Data(jungle,"animals/tiger/age")' />
+ <assign location='Data(jungle,"animals/lion/age")' expr='new Number(Data(jungle,"animals/lion/age")) + 3' />
+ <assign location='Data(jungle,"animals/tiger/age")' expr='new Number(Data(jungle,"animals/lion/age")) + 4' />
+ <log expr='"Lion : " + Data(jungle,"animals/lion/name") + "," + Data(jungle,"animals/lion/age")' />
+ <log expr='"Tiger: " + Data(jungle,"animals/tiger/name") + "," + Data(jungle,"animals/tiger/age")' />
+ </onentry>
+ <transition target='javascript.functions.inline' />
+ </state>
+
+ <!-- JAVASCRIPT FUNCTIONS -->
+
+ <state id='javascript.functions.inline'>
+ <onentry>
+ <log expr='function fibonacci()
+ { return 1 + 1 + 2 + 3 + 5;
+ };
+
+ "FIBONACCI(5) : " + fibonacci()' />
+ </onentry>
+ <transition target='javascript.functions.var' />
+ </state>
+
+ <state id='javascript.functions.var'>
+ <onentry>
+ <scxml:var name='fibonacci' expr='new Function("return 1 + 1 + 2 + 3 + 5 + 6")' />
+ <log expr='"FIBONACCI(6) : " + fibonacci()' />
+ </onentry>
+ <transition target='javascript.functions.global' />
+ </state>
+
+ <state id='javascript.functions.global'>
+ <onentry>
+ <log expr='"factorial: " + factorial(5)' />
+ </onentry>
+ <transition target='javascript.functions.print' />
+ </state>
+
+ <state id='javascript.functions.print'>
+ <onentry>
+ <log expr='function debug(msg)
+ { println("** " + msg + " **");
+ return "ok"
+ }
+
+ debug("This is the Javascript println() function")' />
+ </onentry>
+ <transition target='end' />
+ </state>
+
+ </state>
+
+ <!-- DONE -->
+
+ <state id='end' final='true' >
+ <onentry>
+ <log expr='"Ending Javascript sample script: " + new Date()' />
+ </onentry>
+ </state>
+
+</scxml>
Propchange: commons/proper/scxml/branches/J5/src/test/java/org/apache/commons/scxml/env/javascript/example-01.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/scxml/branches/J5/src/test/java/org/apache/commons/scxml/env/javascript/example-01.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL