home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Thomson (Residential)
/
TGSTPv7203.iso
/
mac
/
HIW
/
xml
/
mod_setdeviceproperties.xml
< prev
next >
Wrap
Extensible Markup Language
|
2008-02-11
|
3KB
|
66 lines
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fsm SYSTEM "fsm.dtd">
<!--
-->
<fsm>
<property key="device" required="yes"/>
<property key="filePath" required="yes"/>
<states>
<state type="readTextFile" name="openFile"/>
<state type="parseXml" name="parseXml"/>
<state type="xmlFindNodes" name="findDeviceNode"/>
<state type="fsm" name="setPropertiesFsm">
<property key="device" required="yes"/>
<property key="nodeList" required="yes"/>
<states>
<state type="listIterator" name="iterator"/>
</states>
<events>
<event name="finished"/>
</events>
<transitions>
<transition startstate="iterator">
<propertymap target="fsm.nodeList" function="$fsm.nodeList"/>
<propertymap target="fsm.iterateCount" function="count($fsm.nodeList)"/>
<propertymap target="list" function="propertylist($fsm.nodeList)"/>
<propertymap target="currentItem" function=""/>
</transition>
<transition fromstate="iterator" tostate="iterator" event="nextItem">
<propertymap target="currentItem" function="$currentItem"/>
<propertymap target="fsm.tempKey" function="findfirstnode(property($fsm.nodeList, $currentItem), '@key')"/>
<propertymap target="fsm.tempValue" function="findfirstnode(property($fsm.nodeList, $currentItem), '@value')"/>
<propertymap target="fsm.device" function="setproperty($fsm.device, property($fsm.tempKey, 'nodeValue'), property($fsm.tempValue, 'nodeValue'))"/>
</transition>
<transition fromstate="iterator" toexit="finished" event="lastItem"/>
</transitions>
</state>
</states>
<events>
<event name="finished"/>
</events>
<transitions>
<transition startstate="openFile">
<propertymap target="path" function="$fsm.filePath"/>
</transition>
<transition fromstate="openFile" tostate="parseXml" event="finished">
<propertymap target="xmlContent" function="$content"/>
</transition>
<transition fromstate="parseXml" tostate="findDeviceNode" event="finished">
<propertymap target="node" function="$xmlDocument"/>
<propertymap target="path" function="replace('/devices/device[@board=\'%1\']/property', '%1', property($fsm.device, 'board'))"/>
</transition>
<transition fromstate="findDeviceNode" tostate="setPropertiesFsm" event="singleFound|multipleFound">
<propertymap target="device" function="$fsm.device"/>
<propertymap target="nodeList" function="remove($nodeList, 'name')"/>
</transition>
<transition fromstate="openFile" toexit="finished" event="failed|fileNotFound"/>
<transition fromstate="parseXml" toexit="finished" event="invalid"/>
<transition fromstate="findDeviceNode" toexit="finished" event="noFound"/>
<transition fromstate="setPropertiesFsm" toexit="finished" event="finished">
<propertymap target="fsm.device" function="$device"/>
</transition>
</transitions>
</fsm>