Home » Modeling » Epsilon » ETL, ::= and equivalent()(About transforming an ecore model to a doctrine one)
| |
Re: ETL, ::= and equivalent() [message #509641 is a reply to message #509637] |
Sat, 23 January 2010 22:39 |
St Messages: 77 Registered: July 2009 |
Member |
|
|
Hi,
The problem is that is doesnt work event when writting line correctly.
I get this error :
Internal error: java.lang.NullPointerException
at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. getEquivalent[FastTransformationStrategy.java:75]
at org.eclipse.epsilon.etl.execute.EquivalentAssignExecutor.get RhsEquivalent[EquivalentAssignExecutor.java:31]
at org.eclipse.epsilon.eol.execute.AssignExecutor.execute[Assig nExecutor.java:53]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.IfStatementExecutor.execute[ IfStatementExecutor.java:42]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute [ForStatementExecutor.java:115]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute [ForStatementExecutor.java:115]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute [ForStatementExecutor.java:115]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.etl.TransformRule.executeSuperRulesAndBo dy[TransformRule.java:312]
at org.eclipse.epsilon.etl.TransformRule.transform[TransformRul e.java:255]
at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. executeTransformations[FastTransformationStrategy.java:172]
at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. transformModels[FastTransformationStrategy.java:164]
at org.eclipse.epsilon.etl.EtlModule.execute[EtlModule.java:187 ]
at org.eclipse.epsilon.etl.dt.launching.EtlLaunchConfigurationD elegate.launch[EtlLaunchConfigurationDelegate.java:89]
at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L aunchConfiguration.java:853]
at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L aunchConfiguration.java:703]
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch[D ebugUIPlugin.java:866]
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run[DebugUIPlu gin.java:1069]
at org.eclipse.core.internal.jobs.Worker.run[Worker.java:55]
(/home/serard/Documents/workspaces/trVilnus/se.ecore2doctrin e/src/ecore2doctrine.etl@50:30)
with operation rewritten and line 50 is marked with a commented
operation doctrine!doctrine::Record::Record transformDoctrineRecordInheritance( input: ecore!EClass ) : null
{
if( input.eSuperTypes.isDefined() and input.eSuperTypes.select(c|not c.interface).size()>0)
{
var inheritance = doctrine!doctrine::Record::Inheritance::Inheritance.createIn stance();
inheritance.`extends` ::= input.eSuperTypes.select(c|not c.interface).first(); //line 50
self.inheritance = inheritance;
}
}
Here is the link to download eclipse projects (emfatic doesnt work on my eclipse):
http://stephaneerard.fr/epsilon_etl.zip
I have 3 projects:
se.doctrine.mm
se.ecore2doctrine
se.eds.mm
input : mm ecore, model : se.eds.mm/model/eds.ecore
output: mm : se.doctrine.mm/model/doctrine.ecore, output model: se.ecore2doctrine/src/gen.xmi
Thanks a lot Dimitrios, I wish you a good year.
BTW, I have already told you about acceleo and ui generation launcher project, which is generated easily with two-clicks when using acceleo and give user the ability to launch a generation from a file with a right-click after plugin is installed.
I'd like to pay you to do something similar for epsilon egl, etl and others why not (it is quite simple to do such thing to generate plugin projects which would be ui launchers for etl, egl; no more ant for basic users of eclipse plugins created using epsilon). Is this a big deal to do ?
The generated plugin, by the acceleo ui launcher generator, is fairly simple.
Anyway I don't have time to run on this by myself right now, and I quite need it in three months or such.
Is this possible ? Making it open source, it would push the epsilon plugin development a lot (you can test it using latest acceleo by downloading eclipse sdk then acceleo from update site; also there is an irc chan)
Thank you.
[Updated on: Sat, 23 January 2010 23:02] Report message to a moderator
|
|
|
Re: ETL, ::= and equivalent() [message #509651 is a reply to message #509641] |
Sat, 23 January 2010 21:24 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Stephane,
In ETL, only rules are traced (i.e. you can get the equivalent() of x
only if x is transformed through a rule). In this transformation
however, only EPackages are transformed through a rule (the
ePackage2Model). All other objects (including EClasses) are transformed
through operations. Therefore, to be able to invoke equivalent() (or
assign through ::=) for EClasses you should refactor your transformation
to use a rule instead of an operation for transforming EClasses to Records.
Of course the ETL engine should fail more gracefully in case you attempt
to get the equivalent() of an element that cannot be transformed by any
rule (I'll file a bugzilla for this).
Regarding the UI generation launcher project, I'm definitely happy to
have a go at it. I'll send you an email shortly so that we can take this
off-line and discuss it in more detail.
Cheers,
Dimitris
Stéphane wrote:
> Hi,
>
> The problem is that is doesnt work event when writting line correctly.
> I get this error :
> Internal error: java.lang.NullPointerException
> at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy.
> getEquivalent[FastTransformationStrategy.java:75]
> at org.eclipse.epsilon.etl.execute.EquivalentAssignExecutor.get
> RhsEquivalent[EquivalentAssignExecutor.java:31]
> at org.eclipse.epsilon.eol.execute.AssignExecutor.execute[Assig
> nExecutor.java:53]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.IfStatementExecutor.execute[
> IfStatementExecutor.java:42]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P
> arametersExecutor.java:29]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:155]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute
> [ForStatementExecutor.java:115]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P
> arametersExecutor.java:29]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:155]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute
> [ForStatementExecutor.java:115]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P
> arametersExecutor.java:29]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:155]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute
> [ForStatementExecutor.java:115]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.etl.TransformRule.executeSuperRulesAndBo
> dy[TransformRule.java:312]
> at org.eclipse.epsilon.etl.TransformRule.transform[TransformRul
> e.java:255]
> at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy.
> executeTransformations[FastTransformationStrategy.java:172]
> at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy.
> transformModels[FastTransformationStrategy.java:164]
> at org.eclipse.epsilon.etl.EtlModule.execute[EtlModule.java:187 ]
> at org.eclipse.epsilon.etl.dt.launching.EtlLaunchConfigurationD
> elegate.launch[EtlLaunchConfigurationDelegate.java:89]
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L
> aunchConfiguration.java:853]
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L
> aunchConfiguration.java:703]
> at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch[D
> ebugUIPlugin.java:866]
> at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run[DebugUIPlu
> gin.java:1069]
> at org.eclipse.core.internal.jobs.Worker.run[Worker.java:55]
> (/home/serard/Documents/workspaces/trVilnus/se.ecore2doctrin
> e/src/mailto:ecore2doctrine.etl@50:30)
>
>
> with operation rewritten and line 50 is marked with a commented
>
> operation doctrine!doctrine::Record::Record
> transformDoctrineRecordInheritance( input: ecore!EClass ) : null
> {
> if( input.eSuperTypes.isDefined() and
> input.eSuperTypes.select(c|not c.interface).size()>0)
> {
> var inheritance =
> doctrine!doctrine::Record::Inheritance::Inheritance.createIn stance();
> inheritance.`extends` ::= input.eSuperTypes.select(c|not
> c.interface).first(); //line 50
> self.inheritance = inheritance;
>
> }
> }
>
>
> Here is the link to download eclipse projects (emfatic doesnt work on my
> eclipse):
> http://stephaneerard.fr/epsilon_etl.zip
>
> I have 3 projects:
> se.doctrine.mm se.ecore2doctrine
> se.eds.mm
>
> input : mm ecore, model : se.eds.mm/model/eds.ecore
> output: mm : se.doctrine.mm/model/doctrine.ecore, output model:
> se.ecore2doctrine/src/gen.xmi
>
>
> Thanks a lot Dimitris, I wish you a good year.
>
> BTW, I have already told you about acceleo and ui generation launcher
> project, which is generated easily with two-clicks when using acceleo
> and give user the ability to launch a generation from a file with a
> right-click after plugin is installed.
> I'd like to pay you to do something similar for epsilon egl, etl and
> others why not (it is quite simple to do such thing to generate plugin
> projects which would be ui launchers for etl, egl; no more ant for basic
> users of eclipse plugins created using epsilon). Is this a big deal to do ?
> The generated plugin, by the acceleo ui launcher generator, is fairly
> simple.
> Anyway I don't have time to run on this by myself right now, and I quite
> need it in three months or such.
> Is this possible ? Making it open source, it would push the epsilon
> plugin development a lot (you can test it using latest acceleo by
> downloading eclipse sdk then acceleo from update site; also there is an
> irc chan) :)
>
> Thank you.
|
|
| | | | | | |
Re: ETL, ::= and equivalent() [message #584918 is a reply to message #509637] |
Sat, 23 January 2010 22:39 |
St Messages: 77 Registered: July 2009 |
Member |
|
|
Hi,
The problem is that is doesnt work event when writting line correctly.
I get this error :
Internal error: java.lang.NullPointerException
at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. getEquivalent[FastTransformationStrategy.java:75]
at org.eclipse.epsilon.etl.execute.EquivalentAssignExecutor.get RhsEquivalent[EquivalentAssignExecutor.java:31]
at org.eclipse.epsilon.eol.execute.AssignExecutor.execute[Assig nExecutor.java:53]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.IfStatementExecutor.execute[ IfStatementExecutor.java:42]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute [ForStatementExecutor.java:115]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute [ForStatementExecutor.java:115]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:258]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:231]
at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:189]
at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37]
at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute [ForStatementExecutor.java:115]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33]
at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:185]
at org.eclipse.epsilon.etl.TransformRule.executeSuperRulesAndBo dy[TransformRule.java:312]
at org.eclipse.epsilon.etl.TransformRule.transform[TransformRul e.java:255]
at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. executeTransformations[FastTransformationStrategy.java:172]
at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. transformModels[FastTransformationStrategy.java:164]
at org.eclipse.epsilon.etl.EtlModule.execute[EtlModule.java:187 ]
at org.eclipse.epsilon.etl.dt.launching.EtlLaunchConfigurationD elegate.launch[EtlLaunchConfigurationDelegate.java:89]
at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L aunchConfiguration.java:853]
at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L aunchConfiguration.java:703]
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch[D ebugUIPlugin.java:866]
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run[DebugUIPlu gin.java:1069]
at org.eclipse.core.internal.jobs.Worker.run[Worker.java:55]
(/home/serard/Documents/workspaces/trVilnus/se.ecore2doctrin e/src/mailto:ecore2doctrine.etl@50:30)
with operation rewritten and line 50 is marked with a commented
operation doctrine!doctrine::Record::Record transformDoctrineRecordInheritance( input: ecore!EClass ) : null
{
if( input.eSuperTypes.isDefined() and input.eSuperTypes.select(c|not c.interface).size()>0)
{
var inheritance = doctrine!doctrine::Record::Inheritance::Inheritance.createIn stance();
inheritance.`extends` ::= input.eSuperTypes.select(c|not c.interface).first(); //line 50
self.inheritance = inheritance;
}
}
Here is the link to download eclipse projects (emfatic doesnt work on my eclipse):
http://stephaneerard.fr/epsilon_etl.zip
I have 3 projects:
se.doctrine.mm
se.ecore2doctrine
se.eds.mm
input : mm ecore, model : se.eds.mm/model/eds.ecore
output: mm : se.doctrine.mm/model/doctrine.ecore, output model: se.ecore2doctrine/src/gen.xmi
Thanks a lot Dimitris, I wish you a good year.
BTW, I have already told you about acceleo and ui generation launcher project, which is generated easily with two-clicks when using acceleo and give user the ability to launch a generation from a file with a right-click after plugin is installed.
I'd like to pay you to do something similar for epsilon egl, etl and others why not (it is quite simple to do such thing to generate plugin projects which would be ui launchers for etl, egl; no more ant for basic users of eclipse plugins created using epsilon). Is this a big deal to do ?
The generated plugin, by the acceleo ui launcher generator, is fairly simple.
Anyway I don't have time to run on this by myself right now, and I quite need it in three months or such.
Is this possible ? Making it open source, it would push the epsilon plugin development a lot (you can test it using latest acceleo by downloading eclipse sdk then acceleo from update site; also there is an irc chan) :)
Thank you.
|
|
|
Re: ETL, ::= and equivalent() [message #584933 is a reply to message #509641] |
Sun, 24 January 2010 02:14 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Stephane,
In ETL, only rules are traced (i.e. you can get the equivalent() of x
only if x is transformed through a rule). In this transformation
however, only EPackages are transformed through a rule (the
ePackage2Model). All other objects (including EClasses) are transformed
through operations. Therefore, to be able to invoke equivalent() (or
assign through ::=) for EClasses you should refactor your transformation
to use a rule instead of an operation for transforming EClasses to Records.
Of course the ETL engine should fail more gracefully in case you attempt
to get the equivalent() of an element that cannot be transformed by any
rule (I'll file a bugzilla for this).
Regarding the UI generation launcher project, I'm definitely happy to
have a go at it. I'll send you an email shortly so that we can take this
off-line and discuss it in more detail.
Cheers,
Dimitris
Stéphane wrote:
> Hi,
>
> The problem is that is doesnt work event when writting line correctly.
> I get this error :
> Internal error: java.lang.NullPointerException
> at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy.
> getEquivalent[FastTransformationStrategy.java:75]
> at org.eclipse.epsilon.etl.execute.EquivalentAssignExecutor.get
> RhsEquivalent[EquivalentAssignExecutor.java:31]
> at org.eclipse.epsilon.eol.execute.AssignExecutor.execute[Assig
> nExecutor.java:53]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.IfStatementExecutor.execute[
> IfStatementExecutor.java:42]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P
> arametersExecutor.java:29]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:155]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute
> [ForStatementExecutor.java:115]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P
> arametersExecutor.java:29]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:155]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute
> [ForStatementExecutor.java:115]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio
> n.java:258]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:231]
> at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja
> va:189]
> at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations.
> java:144]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:161]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P
> arametersExecutor.java:29]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati
> on[PointExecutor.java:155]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:67]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:37]
> at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE
> xecutor.java:123]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.ForStatementExecutor.execute
> [ForStatementExecutor.java:115]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu
> te[StatementBlockExecutor.java:33]
> at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E
> xecutorFactory.java:185]
> at org.eclipse.epsilon.etl.TransformRule.executeSuperRulesAndBo
> dy[TransformRule.java:312]
> at org.eclipse.epsilon.etl.TransformRule.transform[TransformRul
> e.java:255]
> at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy.
> executeTransformations[FastTransformationStrategy.java:172]
> at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy.
> transformModels[FastTransformationStrategy.java:164]
> at org.eclipse.epsilon.etl.EtlModule.execute[EtlModule.java:187 ]
> at org.eclipse.epsilon.etl.dt.launching.EtlLaunchConfigurationD
> elegate.launch[EtlLaunchConfigurationDelegate.java:89]
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L
> aunchConfiguration.java:853]
> at org.eclipse.debug.internal.core.LaunchConfiguration.launch[L
> aunchConfiguration.java:703]
> at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch[D
> ebugUIPlugin.java:866]
> at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run[DebugUIPlu
> gin.java:1069]
> at org.eclipse.core.internal.jobs.Worker.run[Worker.java:55]
> (/home/serard/Documents/workspaces/trVilnus/se.ecore2doctrin
> e/src/mailto:ecore2doctrine.etl@50:30)
>
>
> with operation rewritten and line 50 is marked with a commented
>
> operation doctrine!doctrine::Record::Record
> transformDoctrineRecordInheritance( input: ecore!EClass ) : null
> {
> if( input.eSuperTypes.isDefined() and
> input.eSuperTypes.select(c|not c.interface).size()>0)
> {
> var inheritance =
> doctrine!doctrine::Record::Inheritance::Inheritance.createIn stance();
> inheritance.`extends` ::= input.eSuperTypes.select(c|not
> c.interface).first(); //line 50
> self.inheritance = inheritance;
>
> }
> }
>
>
> Here is the link to download eclipse projects (emfatic doesnt work on my
> eclipse):
> http://stephaneerard.fr/epsilon_etl.zip
>
> I have 3 projects:
> se.doctrine.mm se.ecore2doctrine
> se.eds.mm
>
> input : mm ecore, model : se.eds.mm/model/eds.ecore
> output: mm : se.doctrine.mm/model/doctrine.ecore, output model:
> se.ecore2doctrine/src/gen.xmi
>
>
> Thanks a lot Dimitris, I wish you a good year.
>
> BTW, I have already told you about acceleo and ui generation launcher
> project, which is generated easily with two-clicks when using acceleo
> and give user the ability to launch a generation from a file with a
> right-click after plugin is installed.
> I'd like to pay you to do something similar for epsilon egl, etl and
> others why not (it is quite simple to do such thing to generate plugin
> projects which would be ui launchers for etl, egl; no more ant for basic
> users of eclipse plugins created using epsilon). Is this a big deal to do ?
> The generated plugin, by the acceleo ui launcher generator, is fairly
> simple.
> Anyway I don't have time to run on this by myself right now, and I quite
> need it in three months or such.
> Is this possible ? Making it open source, it would push the epsilon
> plugin development a lot (you can test it using latest acceleo by
> downloading eclipse sdk then acceleo from update site; also there is an
> irc chan) :)
>
> Thank you.
|
|
| | |
Goto Forum:
Current Time: Thu Apr 25 23:30:27 GMT 2024
Powered by FUDForum. Page generated in 0.04327 seconds
|