Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Epsilon » Trouble with cross-domain inheritance in EuGENia(Classes with supertypes defined in other models cause EuGENia to enter an infinite loop.)
Trouble with cross-domain inheritance in EuGENia [message #641702] Fri, 26 November 2010 15:50 Go to next message
Mark Tippetts is currently offline Mark Tippetts
Messages: 25
Registered: July 2009
Junior Member
Hello,

I have a frustrating issue. I'm not sure if it's a limitation of EuGENia or a mistake I'm making. I can create references to model elements in foreign diagram types, but I can't create classes that inherit from elements in foreign diagram types. When I try, EuGENia has a conniption. It doesn't throw an error, and it doesn't produce any output. Instead, it seems to enter some kind of infinite loop.

In the current example, I have two domain/diagram models: Guidance and Interaction. I can't create forum attachments (?), so simplified versions of each are listed below, using Emfatic. The main thing here is that the class interaction!Interaction extends guidance!Cheatsheet.

I'd be very interested to know if anyone else has had success with cross-domain inheritance?

Thanks,

Mark

Guidance.ecore:
@gmf(foo="bar")
@namespace(uri="http://www.golemware.net/epsilontools/guidance/0.1.4", prefix="eclipsepsm.guide")
package guidance;

@gmf.diagram(onefile="false", model.extension="guidance", diagram.extension="guidance_diagram")
class CheatsheetCategory {
  val Cheatsheet[*] cheatsheets;
  attr String[1] name;
}

abstract class Cheatsheet {
  attr String[1] name;
}

@gmf.node(label="name", tool.name="Task")
class Task extends Cheatsheet {

  @gmf.compartment(layout="list", collapsible="true")
  val Task[*] subtasks;

  @gmf.link(label="depends on", source.decoration="none", target.decoration="arrow", tool.name="Task Dependency")
  ref Task[*] dependsOn;
  attr String intro;
  attr String onCompletion;
  attr boolean skip;
  attr boolean activityGuideShowIntro;
}



Interaction.ecore:
@gmf(foo="bar")
@namespace(uri="http://www.golemware.net/eclipsepsm/interaction/0.1.0", prefix="eclipsepsm.interaction")
package interaction;

import "platform:/resource/net.golemware.eclipsepsm.design/examples/extention_problem/SimplifiedGuidance.ecore";

@gmf.diagram(onefile="false", model.extension="interaction", diagram.extension="interaction_diagram")
class InteractionModel {
  val Interaction[*] interactionElements;
  attr String[1] name;
}

@gmf.node(label="name", tool.name="Activity")
class Interaction extends guidance.Cheatsheet {
  attr String description;
  attr String helpCtxId;
  attr String helpURL;
}


Re: Trouble with cross-domain inheritance in EuGENia [message #641939 is a reply to message #641702] Mon, 29 November 2010 05:23 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Mark,

I must admit I haven't tried EuGENia with cross-referencing Ecore
models. I'll have a look at this and get back to you.

Cheers,
Dimitris

On 26/11/2010 21:50, Mark Tippetts wrote:
> Hello,
>
> I have a frustrating issue. I'm not sure if it's a limitation of EuGENia
> or a mistake I'm making. I can create references to model elements in
> foreign diagram types, but I can't create classes that inherit from
> elements in foreign diagram types. When I try, EuGENia has a conniption.
> It doesn't throw an error, and it doesn't produce any output. Instead,
> it seems to enter some kind of infinite loop.
>
> In the current example, I have two domain/diagram models: Guidance and
> Interaction. I can't create forum attachments (?), so simplified
> versions of each are listed below, using Emfatic. The main thing here is
> that the class interaction!Interaction extends guidance!Cheatsheet.
>
> I'd be very interested to know if anyone else has had success with
> cross-domain inheritance?
>
> Thanks,
>
> Mark
>
> Guidance.ecore:
>
> @gmf(foo="bar")
> @namespace(uri="http://www.golemware.net/epsilontools/guidance/0.1.4",
> prefix="eclipsepsm.guide")
> package guidance;
>
> @gmf.diagram(onefile="false", model.extension="guidance",
> diagram.extension="guidance_diagram")
> class CheatsheetCategory {
> val Cheatsheet[*] cheatsheets;
> attr String[1] name;
> }
>
> abstract class Cheatsheet {
> attr String[1] name;
> }
>
> @gmf.node(label="name", tool.name="Task")
> class Task extends Cheatsheet {
>
> @gmf.compartment(layout="list", collapsible="true")
> val Task[*] subtasks;
>
> @gmf.link(label="depends on", source.decoration="none",
> target.decoration="arrow", tool.name="Task Dependency")
> ref Task[*] dependsOn;
> attr String intro;
> attr String onCompletion;
> attr boolean skip;
> attr boolean activityGuideShowIntro;
> }
>
>
>
> Interaction.ecore:
>
> @gmf(foo="bar")
> @namespace(uri="http://www.golemware.net/eclipsepsm/interaction/0.1.0",
> prefix="eclipsepsm.interaction")
> package interaction;
>
> import
> " platform:/resource/net.golemware.eclipsepsm.design/examples/ extention_problem/SimplifiedGuidance.ecore ";
>
>
> @gmf.diagram(onefile="false", model.extension="interaction",
> diagram.extension="interaction_diagram")
> class InteractionModel {
> val Interaction[*] interactionElements;
> attr String[1] name;
> }
>
> @gmf.node(label="name", tool.name="Activity")
> class Interaction extends guidance.Cheatsheet {
> attr String description;
> attr String helpCtxId;
> attr String helpURL;
> }
>
>
>
Re: Trouble with cross-domain inheritance in EuGENia [message #642916 is a reply to message #641702] Fri, 03 December 2010 05:27 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Mark,

Thanks for reporting this and apologies for the late reply. I've found
that if instead of importing guidance.ecore directly, you register it
and then import it by URI (import
"http://www.golemware.net/epsilontools/guidance/0.1.4") EuGENia doesn't
seem to be going into this infinite loop.

In any case, this appears to be an issue worthy of further
investigation. Could you please file a bug report for this?

https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT& component=Epsilon

Cheers,
Dimitris

Mark Tippetts wrote:
> Hello,
>
> I have a frustrating issue. I'm not sure if it's a limitation of EuGENia
> or a mistake I'm making. I can create references to model elements in
> foreign diagram types, but I can't create classes that inherit from
> elements in foreign diagram types. When I try, EuGENia has a conniption.
> It doesn't throw an error, and it doesn't produce any output. Instead,
> it seems to enter some kind of infinite loop.
>
> In the current example, I have two domain/diagram models: Guidance and
> Interaction. I can't create forum attachments (?), so simplified
> versions of each are listed below, using Emfatic. The main thing here is
> that the class interaction!Interaction extends guidance!Cheatsheet.
>
> I'd be very interested to know if anyone else has had success with
> cross-domain inheritance?
>
> Thanks,
>
> Mark
>
> Guidance.ecore:
>
> @gmf(foo="bar")
> @namespace(uri="http://www.golemware.net/epsilontools/guidance/0.1.4",
> prefix="eclipsepsm.guide")
> package guidance;
>
> @gmf.diagram(onefile="false", model.extension="guidance",
> diagram.extension="guidance_diagram")
> class CheatsheetCategory {
> val Cheatsheet[*] cheatsheets;
> attr String[1] name;
> }
>
> abstract class Cheatsheet {
> attr String[1] name;
> }
>
> @gmf.node(label="name", tool.name="Task")
> class Task extends Cheatsheet {
>
> @gmf.compartment(layout="list", collapsible="true")
> val Task[*] subtasks;
>
> @gmf.link(label="depends on", source.decoration="none",
> target.decoration="arrow", tool.name="Task Dependency")
> ref Task[*] dependsOn;
> attr String intro;
> attr String onCompletion;
> attr boolean skip;
> attr boolean activityGuideShowIntro;
> }
>
>
>
> Interaction.ecore:
>
> @gmf(foo="bar")
> @namespace(uri="http://www.golemware.net/eclipsepsm/interaction/0.1.0",
> prefix="eclipsepsm.interaction")
> package interaction;
>
> import
> " platform:/resource/net.golemware.eclipsepsm.design/examples/ extention_problem/SimplifiedGuidance.ecore ";
>
>
> @gmf.diagram(onefile="false", model.extension="interaction",
> diagram.extension="interaction_diagram")
> class InteractionModel {
> val Interaction[*] interactionElements;
> attr String[1] name;
> }
>
> @gmf.node(label="name", tool.name="Activity")
> class Interaction extends guidance.Cheatsheet {
> attr String description;
> attr String helpCtxId;
> attr String helpURL;
> }
>
>
>
Re: Trouble with cross-domain inheritance in EuGENia [message #643465 is a reply to message #641702] Mon, 06 December 2010 18:36 Go to previous messageGo to next message
Mark Tippetts is currently offline Mark Tippetts
Messages: 25
Registered: July 2009
Junior Member
Grr.. trouble with the boards... my replies keep getting eaten!

Dimitris,

No apology necessary. The holiday season consumes all my bandwidth anyhow. Happy Saturnalia!

I haven't yet submitted the bug report you requested. I started to, but as I was documenting the conditions for reproducing the problem, I realized I'd misunderstood the nature of the issue. The difficulty is with recursive decomposition. I think it's connected to the issue in the thread on "Phantom nodes" (which I would link to, but that keeps eating my reply!).

I haven't had any problem at all with EuGENia, except in the presence of recursive decomposition, which makes it really flaky. Strip out the annotations for recursive compartments/phantoms, and everything works great.

I will continue working on developing a reproducible test case.
Re: Trouble with cross-domain inheritance in EuGENia [message #643606 is a reply to message #643465] Tue, 07 December 2010 10:48 Go to previous message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Mark,

Thanks for the update! Please let us know when you come up with a
reproducible test case.

Regarding the forum issue I'd encourage you to submit a bug report under
the "Forums and Newsgroups" component of the Community product in the
Bugzilla: https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Communit y
.. The newsgroup/forum integration is a bit shaky sometimes and I'm sure
the Eclipse web masters would appreciate any feedback.

Cheers,
Dimitris

Mark Tippetts wrote:
> Grr.. trouble with the boards... my replies keep getting eaten!
>
> Dimitris,
> No apology necessary. The holiday season consumes all my bandwidth
> anyhow. Happy Saturnalia!
>
> I haven't yet submitted the bug report you requested. I started to, but
> as I was documenting the conditions for reproducing the problem, I
> realized I'd misunderstood the nature of the issue. The difficulty is
> with recursive decomposition. I think it's connected to the issue in the
> thread on "Phantom nodes" (which I would link to, but that keeps eating
> my reply!).
>
> I haven't had any problem at all with EuGENia, except in the presence of
> recursive decomposition, which makes it really flaky. Strip out the
> annotations for recursive compartments/phantoms, and everything works
> great.
>
> I will continue working on developing a reproducible test case.
>
Previous Topic:[EuGenia] Standalone RCP application
Next Topic:[EWL] Wizard modifies underlying model
Goto Forum:
  


Current Time: Fri Apr 18 22:13:58 EDT 2014

Powered by FUDForum. Page generated in 0.04709 seconds