A suggestion of how to solve the issue I pointed out. Place your stuff inside
another create extension. Something like this:

around transformation::DslTransformation::transform(DslEntity domainObject)
:
    let e = (Entity) ctx.proceed() : 
        debugTrace("AROUND " + domainObject.name) ->
        e.specialTransform(domainObject) ->
        e;
        
create Entity specialTransform(Entity e, DslEntity domainObject) :
        debugTrace("specialTransform " + e.name) ->
        e.setDoc("MODIFIED") ->
        e;


Patrik Nordwall wrote:
> 
> That makes sense and it works for me:
> 
> around transformation::DslTransformation::transform(DslEntity
> domainObject) :
>     let e = (Entity) ctx.proceed() : 
>       debugTrace("AROUND " + domainObject.name) ->
>       e.setDoc("MODIFIED") ->
>       e;
> 
> One thing to watch out for is that I think the around will be invoked many
> times and therefore 
> e.constants.addAll
> will result in too many elements in the e.constants List
> 
> create extensions are magic in the sense that they are only executed once
> for the same input, i.e. they return the same instance when the instance
> of the parameter is the same.
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-Sculptor--Using-AOP-on-DslTransformation.ext-tp18968553s17564p18989255.html
Sent from the Fornax-Platform mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Fornax-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fornax-developer

Reply via email to