commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rahul Akolkar <rahul.akol...@gmail.com>
Subject Re: [scxml] How to retrieve the transition target in a custom action
Date Mon, 20 Sep 2010 22:12:08 GMT
2010/9/20 Thiébault Benoît <dev@artenum.com>:
> Hi everyone,
>
> I would like to retrieve the transition target (if there is one) in my custom action.
> How can I do this?
>
> My need is more to know if there is a transition than to know what the target is.
<snip/>

I believe you mean a transition thats not a stay nor self transition,
since the only way a custom action will ever execute is if some
transiton is being followed (in order for SCXML executable content to
execute).

There isn't a direct way to access information about the transition
target. I imagine your custom action is within a transition element.
If so, you could walk up the SCXML object model and check whether the
parent transition has a target attribute and whether it is the parent
state id itself. It may also be possible to infer whether a (non-stay)
transition is being followed and what the target is, by using a
suitable SCXMLListener impl.

For long computations, you should consider using the external
communications module (either <send> or <invoke>) to send an event to
(or invoke) some external process which manages the computation and
fires a completion event on the state machine when done.

-Rahul


> I need this info to know if it is possible to launch a long computation in a different
thread:
> - if there is a transition target, the state machine will go to the new state and my
computation will be started in one state and continue in another one, which I want to avoid.
> - if there is no transition target, it means that my computation is performed within
the original state (internal transition) and I can use my computation without fearing an undetermined
state machine.
>
> Kind regards,
>
> Ben

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message