Hi Patrik,

Thanks for your quick response and letting me know about your findings.  

Hmm, I am thinking though--if I must copy the entire create extension and
then add my few setters, then why bother?  This is not very modular.  I
might as well just edit the original DslTransformation.ext file.  I was
hoping to just "extend" the original definition with my extra calls without
actually duplicating the original.  But unless I'm missing something, maybe
that's just not possible.  

Thanks,
Polly



Patrik Nordwall wrote:
> 
> I have tried and I can see the same type of problems. create extensions
> are a bit special. I have found the following way to solve your problem.
> You have to copy and modify the full create extension into your advice
> file.
> 
> import sculptordsl;
> 
> extension org::openarchitectureware::xtext::registry::Modelloader
> reexport;
> extension org::fornax::cartridges::sculptor::dsl::Extensions;
> extension extensions::helper;
> extension transformation::DslTransformation;
> 
> around transformation::DslTransformation::transform(DslEntity
> domainObject) : 
>       debugTrace("AROUND " + domainObject.name) ->
>       domainObject.transform2();
>       
> create sculptormetamodel::Entity this transform2(DslEntity domainObject) :
>     setA(domainObject.a) -> 
>     setB(domainObject.b) -> 
>     setC(domainObject.c) -> 
>     setD(domainObject.d) -> 
>     constants.addAll(domainObject.constants.transform()) ->
> 
>     setDoc(domainObject.doc) ->
>     setName(domainObject.name) ->
>     setPackage(domainObject.package) ->
>     setAbstract(domainObject.abstract) ->
>     setOptimisticLocking(!domainObject.notOptimisticLocking) ->
>     setAuditable(!domainObject.notAuditable) ->
>     setCache(domainObject.cache) ->
>     setDatabaseTable(domainObject.databaseTable) ->
>     setAggregateRoot(!domainObject.notAggregateRoot) ->
>     attributes.addAll(domainObject.attributes.transform()) ->
>     references.addAll(domainObject.references.transform()) ->
>     (domainObject.extends != null ?
>       setExtends(domainObject.extends.transform()) :
>       null) ->
>     (domainObject.repository != null ?
>       setRepository(domainObject.repository.transform()) :
>       null); 
> 
> create sculptormetamodel::Constant this transform(DslConstant constant) : 
>     setDoc(constant.doc) -> 
>     setName(constant.name) -> 
>     setValue(constant.value) ->     
>     (constant.valueRef != null ? 
>       setValueRef(constant.valueRef.transform()) : 
>       null 
>     ); 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-Sculptor--Using-AOP-on-DslTransformation.ext-tp18968553s17564p18970278.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