Home » Modeling » Epsilon » ETL: protected regions not working
ETL: protected regions not working [message #877041] |
Fri, 25 May 2012 15:10  |
Eclipse User |
|
|
|
I'm trying to use protected regions with ETL. So, I put the following code in the template:
[%=out.preserve("/*", "*/", name+"-Prop", true," //TODO")%]
This generates the following code:
/* protected region Local-Prop on begin */
//TODO
/* protected region Local-Prop end */
which I think is correct.
Then I changed the previous code to this:
/* protected region Local-Prop on begin */
test();
/* protected region Local-Prop end */
I was hopping that after generating the code again I was going to keep the 'test();', but that content is lost, and it is replaced with '//TODO'.
Am I doing anything wrong? Is there anything else I need to do, besides using the "preserve" method?
|
|
| | | |
Re: ETL: protected regions not working [message #878479 is a reply to message #877775] |
Tue, 29 May 2012 08:01   |
Eclipse User |
|
|
|
Hi Rui Carlos,
Rui Carlos Gonçalves wrote on Sun, 27 May 2012 13:55I've already tried many different ways (preserve/startPreserve, different ids, different comments ), and it's not working :\
I'm not using any special character in the id.
I'm sorry to hear that you're having problems with protected regions. I think this might be related to the bug that Martin mentions. Can you try again without the hyphen in the identifier? So, for example:
[%=out.preserve("/*", "*/", name+"Prop", true," //TODO")%]
I believe that, in the latest stable release of Epsilon, identifiers could only contain word characters (i.e. [a-zA-Z_0-9]). Alternatively, you can try updating to the latest interim release of Epsilon, which contains the fix for this bug and should work with your existing code.
Hope this helps,
Louis.
|
|
| | |
Re: ETL: protected regions not working [message #886913 is a reply to message #879016] |
Fri, 15 June 2012 16:33   |
Eclipse User |
|
|
|
I think I've solved the problem...
I was calling the template directly in a Run Configuration and it was not working.
Now I'm using "TemplateFactory.load"/"generate" methods instead of calling the template directly, and it seems to be working 
Not sure if this is the expected behavior, but it solved the problem.
PS: Louis, if this is still a bug (i.e., if protected regions are supposed to work even without using the "TemplateFactory.load"/"generate"), let me know, and I'll create the bug report. (I haven't done it yet, as creating a minimal example, with metamodels and editor, takes some time :\ )
[Updated on: Fri, 15 June 2012 16:34] by Moderator
|
|
| |
Re: ETL: protected regions not working [message #1776408 is a reply to message #1776341] |
Thu, 16 November 2017 03:56  |
Eclipse User |
|
|
|
Sorry, it's working. It was my fault.
I had forgotten adding [% out.setContentType("Java"); %]
Best,
Víctor
Víctor López wrote on Wed, 15 November 2017 14:23 Hi all!,
is this issue solved?
I'm using latest interim version of Epsilon in Oxygen.
I use the sample code from the book:
// protected region anId on begin
System.out.println(foo);
// protected region anId end
If I use that code directly it doesn't work.
If I create a EGL file and called it with generate works on the new target specified in the generate method.
If I use process it doesn't work.
Are there any requirements for preserved regions to work?
Best,
Víctor
|
|
|
Goto Forum:
Current Time: Wed Jul 23 06:49:22 EDT 2025
Powered by FUDForum. Page generated in 0.36332 seconds
|