Home » Modeling » Epsilon » Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop
Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #500745] |
Fri, 27 November 2009 23:56 |
marco Messages: 82 Registered: September 2009 |
Member |
|
|
Hi Dimitris
I'm trying to use Eugenia for Diagram Partition.
I wanted to create a new diagram involving only types.
The following EMF file is what I use.
compared to the previous diagram, I moved the annotation @ gmf.diagram from SoftwareArchitecture to TypesSpecification
I use Eugenia but don't work...
seems kind that come in an infinite loop ... and do not understand why.
someone tell me why?
regards
marco
@namespace(uri="http://a0.ecore", prefix="A0")
@gmf(foo="bar")
package A0;
@namespace(uri="core", prefix="core")
package core {
class SAComponent extends Component {
}
@gmf.node(figure="rounded",label="name")
class SAConnector extends Component {
}
@gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
class Type extends PropertyHolderElement {
@gmf.link(color="250,100,100")
ref TypedElement[*]#type implementations;
ref Type[*]#subtypes supertypes;
@gmf.link(color="50,200,100",target.decoration="closedarrow ")
ref Type[*]#supertypes subtypes;
}
@gmf.node(figure="rounded",label = "name")
class SAInterface extends InteractionPoint, ArchitecturalElement {
attr SAInterfaceDirection direction;
val Behavior[*] behavior;
}
@gmf.node(figure="rectangle",label="name")
abstract class Component extends ConnectableElement, ArchitecturalElement {
@gmf.compartment(foo="bar", collapsible="true")
val ArchitecturalElement[*] subElement;
}
@gmf.link(style="solid", width="2")
class SAChannel extends SARelationship {
}
abstract class Behavior extends Element {
}
abstract class Business extends Element {
}
abstract class Development extends Element {
}
abstract class Element {
attr String name;
attr String description;
val Development development;
val Business business;
}
@gmf.link(source="from",target="to",label="name")
abstract class Link extends PropertyHolderElement, TypedElement {
attr LinkNavigability navigability;
ref ConnectableElement[1] from;
ref ConnectableElement[1] to;
ref Component fromContext;
ref Component toContext;
}
abstract class ConnectableElement extends Element {
}
@gmf.node(figure="rounded", label="name")
abstract class TypedElement extends Element {
ref Type[*]#implementations type;
}
abstract class PropertyHolderElement extends Element {
val Property[*] properties;
}
@gmf.node(label="name,type,value", figure="rectangle", label.pattern="{1} {0} : {2}")
class Property extends Element {
attr PropertyType type;
attr String value;
}
enum SAInterfaceDirection {
input = 0;
output = 1;
inputOutput = 2;
}
@gmf.node(figure="rectangle", size="20,20", label="name",
label.placement="external", label.icon="false")
abstract class InteractionPoint extends ConnectableElement {
}
enum LinkNavigability {
bidirectional = 0;
unidirectional = 1;
}
@gmf.link(target.decoration="arrow",style="dash")
class SARelationship extends Link, ArchitecturalElement {
}
abstract class Architecture extends PropertyHolderElement {
val ArchitecturalElement[*] subElement;
val Behavior[*] behavior;
val Group[*] groups;
}
class SoftwareArchitecture extends Architecture {
}
abstract class ArchitecturalElement extends PropertyHolderElement, TypedElement {
}
@gmf.node(figure="ellipse",label = "name")
class Group extends Element {
@gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
ref Element[*] members;
}
@gmf.diagram(foo = "bar")
class TypesSpecification {
val Type[*] types;
}
class SAType extends Type {
val Behavior[*] behavior;
}
enum PropertyType {
string = 0;
int = 1;
boolean = 2;
reference = 3;
float = 4;
double = 5;
short = 6;
long = 7;
any = 8;
}
class SAStructuredType extends SAType {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}
@gmf.link(style="solid")
class SABinding extends SARelationship {
}
}
|
|
|
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #500929 is a reply to message #500745] |
Mon, 30 November 2009 10:47 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Marco,
I've reproduced this. I'll try to figure out what goes wrong later on
today and get back to you.
Cheers,
Dimitris
marco wrote:
> Hi Dimitris
> I'm trying to use Eugenia for Diagram Partition.
>
> I wanted to create a new diagram involving only types.
> The following EMF file is what I use.
> compared to the previous diagram, I moved the annotation @ gmf.diagram
> from SoftwareArchitecture to TypesSpecification
>
> I use Eugenia but don't work...
> seems kind that come in an infinite loop ... and do not understand why.
> someone tell me why?
>
> regards
> marco
>
>
> @namespace(uri="http://a0.ecore", prefix="A0")
>
> @gmf(foo="bar")
> package A0;
>
> @namespace(uri="core", prefix="core")
> package core {
> class SAComponent extends Component {
> }
>
> @gmf.node(figure="rounded",label="name")
> class SAConnector extends Component {
> }
>
> @gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
> class Type extends PropertyHolderElement {
> @gmf.link(color="250,100,100") ref TypedElement[*]#type
> implementations;
> ref Type[*]#subtypes supertypes;
> @gmf.link(color="50,200,100",target.decoration="closedarrow ")
> ref Type[*]#supertypes subtypes;
> }
>
> @gmf.node(figure="rounded",label = "name")
> class SAInterface extends InteractionPoint, ArchitecturalElement {
> attr SAInterfaceDirection direction;
> val Behavior[*] behavior;
> }
>
> @gmf.node(figure="rectangle",label="name")
> abstract class Component extends ConnectableElement,
> ArchitecturalElement {
> @gmf.compartment(foo="bar", collapsible="true")
> val ArchitecturalElement[*] subElement;
> }
>
> @gmf.link(style="solid", width="2")
> class SAChannel extends SARelationship {
> }
>
> abstract class Behavior extends Element {
> }
>
> abstract class Business extends Element {
> }
>
> abstract class Development extends Element {
> }
>
> abstract class Element {
> attr String name;
> attr String description;
> val Development development;
> val Business business;
> }
>
> @gmf.link(source="from",target="to",label="name")
> abstract class Link extends PropertyHolderElement, TypedElement {
> attr LinkNavigability navigability;
> ref ConnectableElement[1] from;
> ref ConnectableElement[1] to;
> ref Component fromContext;
> ref Component toContext;
> }
>
> abstract class ConnectableElement extends Element {
> }
>
> @gmf.node(figure="rounded", label="name")
> abstract class TypedElement extends Element {
> ref Type[*]#implementations type;
> }
>
> abstract class PropertyHolderElement extends Element {
> val Property[*] properties;
> }
>
> @gmf.node(label="name,type,value", figure="rectangle",
> label.pattern="{1} {0} : {2}")
> class Property extends Element {
> attr PropertyType type;
> attr String value;
> }
>
> enum SAInterfaceDirection {
> input = 0;
> output = 1;
> inputOutput = 2;
> }
>
> @gmf.node(figure="rectangle", size="20,20", label="name",
> label.placement="external", label.icon="false")
> abstract class InteractionPoint extends ConnectableElement {
> }
>
> enum LinkNavigability {
> bidirectional = 0;
> unidirectional = 1;
> }
>
> @gmf.link(target.decoration="arrow",style="dash")
> class SARelationship extends Link, ArchitecturalElement {
> }
>
> abstract class Architecture extends PropertyHolderElement {
> val ArchitecturalElement[*] subElement;
> val Behavior[*] behavior;
> val Group[*] groups;
> }
>
> class SoftwareArchitecture extends Architecture {
> }
>
> abstract class ArchitecturalElement extends PropertyHolderElement,
> TypedElement {
> }
>
> @gmf.node(figure="ellipse",label = "name")
> class Group extends Element {
> @gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif
> ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
> ref Element[*] members;
> }
>
>
> @gmf.diagram(foo = "bar")
> class TypesSpecification {
> val Type[*] types;
> }
>
> class SAType extends Type {
> val Behavior[*] behavior;
> }
>
> enum PropertyType {
> string = 0;
> int = 1;
> boolean = 2;
> reference = 3;
> float = 4;
> double = 5;
> short = 6;
> long = 7;
> any = 8;
> }
>
> class SAStructuredType extends SAType {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
>
> @gmf.link(style="solid")
> class SABinding extends SARelationship {
> }
>
> }
>
--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
|
|
|
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #501054 is a reply to message #500929] |
Mon, 30 November 2009 20:01 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Marco,
It seems that the structure of your metamodel (somehow) makes EuGENia
produce elements (in the GMF mapping model) that are involved in a
cyclic containment (!) relationship (and this causes
EcoreUtil#isAncestor to fall into an infinite loop). Hard as I tried, I
haven't been able to come up with a minimal metamodel that reproduces
this so that I can understand the exact nature of the problem. I'll have
another go at it within the next few days...
Cheers,
Dimitris
Dimitris Kolovos wrote:
> Hi Marco,
>
> I've reproduced this. I'll try to figure out what goes wrong later on
> today and get back to you.
>
> Cheers,
> Dimitris
>
> marco wrote:
>> Hi Dimitris
>> I'm trying to use Eugenia for Diagram Partition.
>>
>> I wanted to create a new diagram involving only types.
>> The following EMF file is what I use.
>> compared to the previous diagram, I moved the annotation @ gmf.diagram
>> from SoftwareArchitecture to TypesSpecification
>>
>> I use Eugenia but don't work...
>> seems kind that come in an infinite loop ... and do not understand why.
>> someone tell me why?
>>
>> regards
>> marco
>>
>>
>> @namespace(uri="http://a0.ecore", prefix="A0")
>>
>> @gmf(foo="bar")
>> package A0;
>>
>> @namespace(uri="core", prefix="core")
>> package core {
>> class SAComponent extends Component {
>> }
>>
>> @gmf.node(figure="rounded",label="name")
>> class SAConnector extends Component {
>> }
>>
>> @gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
>> class Type extends PropertyHolderElement {
>> @gmf.link(color="250,100,100") ref TypedElement[*]#type
>> implementations;
>> ref Type[*]#subtypes supertypes;
>> @gmf.link(color="50,200,100",target.decoration="closedarrow ")
>> ref Type[*]#supertypes subtypes;
>> }
>>
>> @gmf.node(figure="rounded",label = "name")
>> class SAInterface extends InteractionPoint, ArchitecturalElement {
>> attr SAInterfaceDirection direction;
>> val Behavior[*] behavior;
>> }
>>
>> @gmf.node(figure="rectangle",label="name")
>> abstract class Component extends ConnectableElement,
>> ArchitecturalElement {
>> @gmf.compartment(foo="bar", collapsible="true")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>> @gmf.link(style="solid", width="2")
>> class SAChannel extends SARelationship {
>> }
>>
>> abstract class Behavior extends Element {
>> }
>>
>> abstract class Business extends Element {
>> }
>>
>> abstract class Development extends Element {
>> }
>>
>> abstract class Element {
>> attr String name;
>> attr String description;
>> val Development development;
>> val Business business;
>> }
>>
>> @gmf.link(source="from",target="to",label="name")
>> abstract class Link extends PropertyHolderElement, TypedElement {
>> attr LinkNavigability navigability;
>> ref ConnectableElement[1] from;
>> ref ConnectableElement[1] to;
>> ref Component fromContext;
>> ref Component toContext;
>> }
>>
>> abstract class ConnectableElement extends Element {
>> }
>>
>> @gmf.node(figure="rounded", label="name")
>> abstract class TypedElement extends Element {
>> ref Type[*]#implementations type;
>> }
>>
>> abstract class PropertyHolderElement extends Element {
>> val Property[*] properties;
>> }
>>
>> @gmf.node(label="name,type,value", figure="rectangle",
>> label.pattern="{1} {0} : {2}")
>> class Property extends Element {
>> attr PropertyType type;
>> attr String value;
>> }
>>
>> enum SAInterfaceDirection {
>> input = 0;
>> output = 1;
>> inputOutput = 2;
>> }
>>
>> @gmf.node(figure="rectangle", size="20,20", label="name",
>> label.placement="external", label.icon="false")
>> abstract class InteractionPoint extends ConnectableElement {
>> }
>>
>> enum LinkNavigability {
>> bidirectional = 0;
>> unidirectional = 1;
>> }
>>
>> @gmf.link(target.decoration="arrow",style="dash")
>> class SARelationship extends Link, ArchitecturalElement {
>> }
>>
>> abstract class Architecture extends PropertyHolderElement {
>> val ArchitecturalElement[*] subElement;
>> val Behavior[*] behavior;
>> val Group[*] groups;
>> }
>>
>> class SoftwareArchitecture extends Architecture {
>> }
>>
>> abstract class ArchitecturalElement extends PropertyHolderElement,
>> TypedElement {
>> }
>>
>> @gmf.node(figure="ellipse",label = "name")
>> class Group extends Element {
>> @gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif
>> ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
>> ref Element[*] members;
>> }
>>
>>
>> @gmf.diagram(foo = "bar")
>> class TypesSpecification {
>> val Type[*] types;
>> }
>>
>> class SAType extends Type {
>> val Behavior[*] behavior;
>> }
>>
>> enum PropertyType {
>> string = 0;
>> int = 1;
>> boolean = 2;
>> reference = 3;
>> float = 4;
>> double = 5;
>> short = 6;
>> long = 7;
>> any = 8;
>> }
>>
>> class SAStructuredType extends SAType {
>> @gmf.compartment(collapsible="false")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>>
>> @gmf.link(style="solid")
>> class SABinding extends SARelationship {
>> }
>>
>> }
>>
>
>
--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
|
|
|
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #501589 is a reply to message #501054] |
Wed, 02 December 2009 23:04 |
marco Messages: 82 Registered: September 2009 |
Member |
|
|
Hi Dimitris
I am attaching a metamodel restricted with the same problem.
However I understand why you by.
If you try to remove @gmf.compartment (collapsible = "false")
val ArchitecturalElement [*] sub-element;
from the Component class, then it no longer the problem of infinite loop.
Now the problem is that I need an editor that works on the old metamodel, what can I do to get it working?
thanks
marco
@namespace(uri="http://a0.ecore", prefix="A0")
@gmf(foo="bar")
package A0;
@namespace(uri="core", prefix="core")
package core {
@gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
class Component extends ArchitecturalElement {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}
abstract class ArchitecturalElement{
}
@gmf.diagram (foo="bar")
class TypesSpecification {
@gmf.compartment(foo="bar", collapsible="false")
val SAStructuredType[*] types;
}
class SAStructuredType {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}
}
|
|
|
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #501592 is a reply to message #501589] |
Wed, 02 December 2009 23:09 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Marco,
Thanks for trimming down the metamodel. Now it should be a lot easier to
figure out what's going wrong. I'll have a look and let you know.
Cheers,
Dimitris
marco wrote:
> Hi Dimitris
>
> I am attaching a metamodel restricted with the same problem.
>
> However I understand why you by.
>
> If you try to remove @gmf.compartment (collapsible = "false")
> val ArchitecturalElement [*] sub-element;
>
> from the Component class, then it no longer the problem of infinite loop.
>
> Now the problem is that I need an editor that works on the old
> metamodel, what can I do to get it working?
>
> thanks
> marco
>
>
> @namespace(uri="http://a0.ecore", prefix="A0")
>
> @gmf(foo="bar")
> package A0;
>
> @namespace(uri="core", prefix="core")
> package core {
>
> @gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
> class Component extends ArchitecturalElement {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> abstract class ArchitecturalElement{
> }
>
> @gmf.diagram (foo="bar")
> class TypesSpecification {
> @gmf.compartment(foo="bar", collapsible="false")
> val SAStructuredType[*] types;
> }
>
>
> class SAStructuredType {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> }
>
>
>
>
--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
|
|
| | | | | | | | | | |
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583328 is a reply to message #500929] |
Mon, 30 November 2009 20:01 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Marco,
It seems that the structure of your metamodel (somehow) makes EuGENia
produce elements (in the GMF mapping model) that are involved in a
cyclic containment (!) relationship (and this causes
EcoreUtil#isAncestor to fall into an infinite loop). Hard as I tried, I
haven't been able to come up with a minimal metamodel that reproduces
this so that I can understand the exact nature of the problem. I'll have
another go at it within the next few days...
Cheers,
Dimitris
Dimitris Kolovos wrote:
> Hi Marco,
>
> I've reproduced this. I'll try to figure out what goes wrong later on
> today and get back to you.
>
> Cheers,
> Dimitris
>
> marco wrote:
>> Hi Dimitris
>> I'm trying to use Eugenia for Diagram Partition.
>>
>> I wanted to create a new diagram involving only types.
>> The following EMF file is what I use.
>> compared to the previous diagram, I moved the annotation @ gmf.diagram
>> from SoftwareArchitecture to TypesSpecification
>>
>> I use Eugenia but don't work...
>> seems kind that come in an infinite loop ... and do not understand why.
>> someone tell me why?
>>
>> regards
>> marco
>>
>>
>> @namespace(uri="http://a0.ecore", prefix="A0")
>>
>> @gmf(foo="bar")
>> package A0;
>>
>> @namespace(uri="core", prefix="core")
>> package core {
>> class SAComponent extends Component {
>> }
>>
>> @gmf.node(figure="rounded",label="name")
>> class SAConnector extends Component {
>> }
>>
>> @gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
>> class Type extends PropertyHolderElement {
>> @gmf.link(color="250,100,100") ref TypedElement[*]#type
>> implementations;
>> ref Type[*]#subtypes supertypes;
>> @gmf.link(color="50,200,100",target.decoration="closedarrow ")
>> ref Type[*]#supertypes subtypes;
>> }
>>
>> @gmf.node(figure="rounded",label = "name")
>> class SAInterface extends InteractionPoint, ArchitecturalElement {
>> attr SAInterfaceDirection direction;
>> val Behavior[*] behavior;
>> }
>>
>> @gmf.node(figure="rectangle",label="name")
>> abstract class Component extends ConnectableElement,
>> ArchitecturalElement {
>> @gmf.compartment(foo="bar", collapsible="true")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>> @gmf.link(style="solid", width="2")
>> class SAChannel extends SARelationship {
>> }
>>
>> abstract class Behavior extends Element {
>> }
>>
>> abstract class Business extends Element {
>> }
>>
>> abstract class Development extends Element {
>> }
>>
>> abstract class Element {
>> attr String name;
>> attr String description;
>> val Development development;
>> val Business business;
>> }
>>
>> @gmf.link(source="from",target="to",label="name")
>> abstract class Link extends PropertyHolderElement, TypedElement {
>> attr LinkNavigability navigability;
>> ref ConnectableElement[1] from;
>> ref ConnectableElement[1] to;
>> ref Component fromContext;
>> ref Component toContext;
>> }
>>
>> abstract class ConnectableElement extends Element {
>> }
>>
>> @gmf.node(figure="rounded", label="name")
>> abstract class TypedElement extends Element {
>> ref Type[*]#implementations type;
>> }
>>
>> abstract class PropertyHolderElement extends Element {
>> val Property[*] properties;
>> }
>>
>> @gmf.node(label="name,type,value", figure="rectangle",
>> label.pattern="{1} {0} : {2}")
>> class Property extends Element {
>> attr PropertyType type;
>> attr String value;
>> }
>>
>> enum SAInterfaceDirection {
>> input = 0;
>> output = 1;
>> inputOutput = 2;
>> }
>>
>> @gmf.node(figure="rectangle", size="20,20", label="name",
>> label.placement="external", label.icon="false")
>> abstract class InteractionPoint extends ConnectableElement {
>> }
>>
>> enum LinkNavigability {
>> bidirectional = 0;
>> unidirectional = 1;
>> }
>>
>> @gmf.link(target.decoration="arrow",style="dash")
>> class SARelationship extends Link, ArchitecturalElement {
>> }
>>
>> abstract class Architecture extends PropertyHolderElement {
>> val ArchitecturalElement[*] subElement;
>> val Behavior[*] behavior;
>> val Group[*] groups;
>> }
>>
>> class SoftwareArchitecture extends Architecture {
>> }
>>
>> abstract class ArchitecturalElement extends PropertyHolderElement,
>> TypedElement {
>> }
>>
>> @gmf.node(figure="ellipse",label = "name")
>> class Group extends Element {
>> @gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif
>> ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
>> ref Element[*] members;
>> }
>>
>>
>> @gmf.diagram(foo = "bar")
>> class TypesSpecification {
>> val Type[*] types;
>> }
>>
>> class SAType extends Type {
>> val Behavior[*] behavior;
>> }
>>
>> enum PropertyType {
>> string = 0;
>> int = 1;
>> boolean = 2;
>> reference = 3;
>> float = 4;
>> double = 5;
>> short = 6;
>> long = 7;
>> any = 8;
>> }
>>
>> class SAStructuredType extends SAType {
>> @gmf.compartment(collapsible="false")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>>
>> @gmf.link(style="solid")
>> class SABinding extends SARelationship {
>> }
>>
>> }
>>
>
>
--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
|
|
|
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583346 is a reply to message #501054] |
Wed, 02 December 2009 23:04 |
marco Messages: 82 Registered: September 2009 |
Member |
|
|
Hi Dimitris
I am attaching a metamodel restricted with the same problem.
However I understand why you by.
If you try to remove @gmf.compartment (collapsible = "false")
val ArchitecturalElement [*] sub-element;
from the Component class, then it no longer the problem of infinite loop.
Now the problem is that I need an editor that works on the old metamodel, what can I do to get it working?
thanks
marco
@namespace(uri="http://a0.ecore", prefix="A0")
@gmf(foo="bar")
package A0;
@namespace(uri="core", prefix="core")
package core {
@gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
class Component extends ArchitecturalElement {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}
abstract class ArchitecturalElement{
}
@gmf.diagram (foo="bar")
class TypesSpecification {
@gmf.compartment(foo="bar", collapsible="false")
val SAStructuredType[*] types;
}
class SAStructuredType {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}
}
|
|
|
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583358 is a reply to message #501589] |
Wed, 02 December 2009 23:09 |
Dimitrios Kolovos Messages: 1776 Registered: July 2009 |
Senior Member |
|
|
Hi Marco,
Thanks for trimming down the metamodel. Now it should be a lot easier to
figure out what's going wrong. I'll have a look and let you know.
Cheers,
Dimitris
marco wrote:
> Hi Dimitris
>
> I am attaching a metamodel restricted with the same problem.
>
> However I understand why you by.
>
> If you try to remove @gmf.compartment (collapsible = "false")
> val ArchitecturalElement [*] sub-element;
>
> from the Component class, then it no longer the problem of infinite loop.
>
> Now the problem is that I need an editor that works on the old
> metamodel, what can I do to get it working?
>
> thanks
> marco
>
>
> @namespace(uri="http://a0.ecore", prefix="A0")
>
> @gmf(foo="bar")
> package A0;
>
> @namespace(uri="core", prefix="core")
> package core {
>
> @gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
> class Component extends ArchitecturalElement {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> abstract class ArchitecturalElement{
> }
>
> @gmf.diagram (foo="bar")
> class TypesSpecification {
> @gmf.compartment(foo="bar", collapsible="false")
> val SAStructuredType[*] types;
> }
>
>
> class SAStructuredType {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> }
>
>
>
>
--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
|
|
| | | | | | | | | | | | | | |
Goto Forum:
Current Time: Sun Sep 22 02:16:30 GMT 2024
Powered by FUDForum. Page generated in 0.07021 seconds
|