Вызов пользовательской функции при оценке перехода cond в scxml
Я хочу вызвать пользовательскую функцию, определенную в script
тег при оценке cond
в transition
блок.
Например, я хочу определить функции как:
<datamodel>
<data expr="1" id="xOccurrences"/>
<data expr="0" id="yOccurrences"/>
</datamodel>
<script>
def updateVars(hasXOccurred, hasYOccurred) {
if(hasXOccurred) xOccurrences++
if(hasYOccurred) yOccurrences++
}
def thresholdBreached(hasXOccurred, hasYOccurred) {
updateVars(hasXOccurred, hasYOccurred)
if(xOccurrences > 5 && yOccurrences > 8)
return true
return false
}
</script>
Затем я хочу вызвать их в выражении eval перехода (с побочными эффектами):
<state id="StateA">
<transition event="EventX" cond="thresholdBreached(_event.data.xOccurred, _event.data.yOccurred)" target="StateB"/>
</state>
Возможно ли сделать это в определении конечного автомата scxml?