2010/9/20 Thiébault Benoît <[email protected]>:
> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to