I have fixed it in Extension.ext (forgot a stupid thing).
Junit test updated.
Please test more.

/Patrik

polly.c.chang wrote:
> 
> Hi Patrik,
> 
> I finally had a chance to test your changes.  It looks good for the
> implementation of the "use" keyword and propagation of the "external"
> attribute to nested design files.  However, it seems that it is not
> possible to reference an object defined inside a nested file.  Given:  
> 
> model1
>   import model2
>     external import model3
>        import model4 
> 
> It is not currently possible to have model1 reference something defined in
> model3.  I say this because the following test case fails:
> 
> import
> "platform:/resource/com.infor.mdd.generator/src/test/resources/nested2.design"
> 
> Application Nested {
>     basePackage = org.fornax.cartridges.sculptor.test.nested
> 
>     Module nested1 {
>       ValueObject A {
>               String a
>               - @B b
>               - @C c
>       }
>     }
> 
> }
> 
> Being able to reference objects defined inside a nested import is what I'd
> really like to have, because my "common" project has its model split over
> many files, and it would be nice if the "app" project can simply import
> its one top-level model file instead of specifying all the individual
> files.  
> 
> I'll take a look at the code to see if I can figure out how to do this,
> but you will probably be faster.  ;)
> 
> Thanks,
> Polly
> 
> 
> 
> Patrik Nordwall wrote:
>> 
>> I have started
>> http://www.fornax-platform.org/tracker/browse/CSC-262
>> 
>> I have added possibility to mark an import as external, i.e. existing in
>> another project.
>> Syntax: 
>> external import
>> "platform:/resource/fornax-cartridges-sculptor-generator/src/test/resources/nested3.design"
>> external import
>> "platform:/resource/fornax-cartridges-sculptor-generator/src/test/resources/nested4.design"
>> 
>> ApplicationPart NestedPart2 {
>>  
>>     Module nested2 {
>>      ValueObject B {
>>              String b
>>              - @C c
>>              - @D d
>>      }
>>     }
>> }
>> 
>> I have overwritten the model() function in Extensions.ext (dsl project).
>> It loads imports recursively and marks modules from external imports.
>> It will handle the case:
>> model1 
>>   import model2 
>>     external import model3 
>>        import model4 
>> 
>> Modules in model3 and model4 will be marked as external (in the context
>> of model1, model2).
>> 
>> This is what I did in Extensions.ext
>> // recursive imports, and on the fly assignment of external
>> List[emf::EObject] model(DslImport this) :
>>      (let loaded1 = model==null?{}:model.load().flatten() :
>>      (this.external ? 
>>              (loaded1.typeSelect(DslModel).imports.setExternal(true) ->
>>              loaded1.typeSelect(DslModel).app.modules.setExternal(true)
>>              ): 
>>              null
>>      ) ->
>>      loaded1.union(loaded1.typeSelect(DslModel).imports.model().flatten()));
>> 
>> I have tested this from junit NestedTransformationTest.
>> 
>> The only thing I have done in the generation so far is to exclude the
>> DomainObjects belonging to external Modules. More excludes have to be
>> done.
>> 
>> Maybe we have to do something for the package naming problem, I will look
>> in to that.
>> 
>> /Patrik
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-Sculptor--importing-nested-design-files-tp20269181s17564p20368963.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