Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
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 #583305] Fri, 27 November 2009 23:56 Go to next message
marco  is currently offline 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 #583313 is a reply to message #583305] Mon, 30 November 2009 10:47 Go to previous message
Dimitrios Kolovos is currently offline 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
Previous Topic:Showing EVL validation in "Problems" view: how to obtain it?
Next Topic:Eugenia: Starters/ideas to automate GMF generation?
Goto Forum:
  


Current Time: Wed Sep 17 17:35:51 GMT 2014

Powered by FUDForum. Page generated in 0.01727 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software