Epsilon Forum

Re: ETL: protected regions not working

That seems fine according to
the book. In our case we use
[%=out.startPreserve("
;--",
"--",entity.identifi
er + " Additional
Descriptions",
true)%]

[%=out.stopPreserve()%]
;

But I now recall I have a
report of preserved regions
being overwritten as in our
case. Any one has any other
ideas?

Re: Forcing an new line EGL

Section 7.6 of the Epsilon
book talks about formatters
and how to use them from
within EGL! 

ETL: protected regions not working

I'm trying to use protected
regions with ETL.  So, I put
the following code in the
template:

[%=out.preserve("/*&q
uot;, "*/",
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?

Method 'satisfiesOne' not found for ...

I was starting to work on some
validations and from the error
message it seems either I am
doing something wrong, or
satisfiesAll is buggy . This
is the code, the metamodel is
Papyrus SysML.


context
SysML!sysml::portandflows::Flo
wPort
{
    // The base port must be
typed
    constraint IsTyped
    {
        check :
self.base_Port.type.isDefined(
)
		
	message : 
"FlowPort" +
self.base_Port.name + "
is not typed"
    }	
	
    constraint
IsTypedWithHiLeS
    {
        guard :
self.satisfies("IsTyped&q
uot;) and 
		self.satisfiesOne("IsBo
oleanOrLogic",
"IsTerminalOrNode")
		
	check : true
		
    }
	
    // Logic and Boolean are
not generalizations
    @lazy
    constraint
IsBooleanOrLogic
    {
	guard :
self.satisfies("IsTyped&q
uot;)
		
	check : self.type.name =
"Logic"
		or self.type.name =
"Boolean"
    }
	
    @lazy
    constraint
HasGeneralization
    {
		
	guard :
self.satisfies("IsTyped&q
uot;)
		
	check :
self.base_Port.type.generaliza
tion.isDefined()
		
	message : 
"FlowPort" +
self.base_Port.name + "
type is not a generalization
"
			+ "of another type
(All HiLeS library types are
generalizations)."
    }

    @lazy
    constraint
IsTerminalOrNode
    {  
	guard :
self.satisfies("HasGenera
lization")
		
	check :
self.base_Port.type.generaliza
tion.general.name =
"Terminal" or
		self.base_Port.type.generali
zation.general.name =
"Node"
		
	message : "Flow Port
" + self.base_Port.name +
" NOT" 
    }
}

Re: Debugging ETL transformations

I was looking for this post so
I thought I'd bump it. Is
there any plans on working on
a debuger in the Epsilon
Roadmap?

Regards, 

Re: Question on multiple validators (for the same object) and fixes

Sorry for finding all these
bugs... 

Bug 380692

I suppose fixing this problem
could be complex... Personally
I do not use the resolutions
(yet), so for me it is not a
show-stopper.

Re: Question on multiple validators (for the same object) and fixes

Hi Maarten,

Yep. I suppose yet another bug
fix is due  Could you please
file a bug report so that we
can keep track of this?

Cheers,
Dimitris

Question on multiple validators (for the same object) and fixes

In the EvlValidator#validate()
the following line is
present:

EvlMarkerResolutionGenerator.I
NSTANCE.removeFixesFor(eObject
);

It removes all 'old' fixes for
the given object.

I was wondering what happens
if a single object is checked
by multiple EVL validators (eg
in a CompositeEValidator
situation): Are only the fixes
of the last validate()
preserved?

If so, I suppose this needs to
be fixed?

Re: Separate editors from code?

I created bug #380597.

Re: Separate editors from code?

If I may add, not only the
editors, but also the wizards
and all other UI/user friendly
code/plugins. As Maarten my
application runs epsilon
transformations in the
"back" and the users
don't really need to know that
it is epsilon what I am using.
So with a more fine separation
we could control more easily
what editors, views, menus,
wizards, etc., we want to
deploy.

Regards,