[ 
http://issues.apache.org/jira/browse/SCXML-27?page=comments#action_12439307 ] 
            
Hallvard Trætteberg commented on SCXML-27:
------------------------------------------

My suggestion was not to directly support subclassing of Transition or caching 
of regexp patterns, but to refactor SCXMLSemanticsImpl so extending the event 
matching strategy is easy for a subclass. As mentioned, for such a simple case, 
I had to copy the whole filterTransitionsSet method from SCXMLSemanticsImpl to 
get hold of the Transition, as it was needed by the event matching strategy. If 
the eventMatch method took the Transition as the first argument, instead of its 
event, an overriding method would have more information.

I have a second use case for this. I also use the scripting language for event 
matching. More specifically, I allow referring to contextual objects, so the 
event matching method may match against "any event generated from object x", 
where object x is an object in the context of the transition. Without knowing 
which Transition the event is attached to, the expression cannot be evaluated. 

> Improve possibility to extending (subclassing) the default semantics
> --------------------------------------------------------------------
>
>                 Key: SCXML-27
>                 URL: http://issues.apache.org/jira/browse/SCXML-27
>             Project: Commons SCXML
>          Issue Type: Improvement
>    Affects Versions: 0.5
>            Reporter: Hallvard Trætteberg
>
> I've extended the default SCXML semantics (subclassed SCXMLSemanticsImpl) 
> with a more flexible event matching method. However, this required copying a 
> lot of code from SCXMLSemanticsImpl, just to replace the event matching 
> method. The problem was that the eventMatch method takes String and Set 
> arguments, with no way to get at the Transition who's event is to be tested. 
> I copied the relevant code and replaced eventMatch(String,Set) with 
> eventMatch(Transition,Set), to make it more flexible. I ask that this change 
> is made to SCXMLSemanticsImpl, to better support overriding.
> The flexibility I've added is to use regular expressions for matching, and 
> since this happens often, I wanted to cache the compiled pattern. The natural 
> place to do this is the Transition, so I subclassed the Transition class, 
> included a field for holding the compiled pattern and made sure to use this 
> subclass whenever a regexp was needed. Then in the modified eventMatch code, 
> I check whether the Transition is of this subclass and used the cache to 
> improve performance.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to