Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » M2M (model-to-model transformation) » ATL: Problem with Nesting rule
ATL: Problem with Nesting rule [message #92760] Mon, 20 October 2008 14:00 Go to next message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

Hi everybody,
I am new on ATL. I am trying to translate
input:
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:bpmn="http://stp.eclipse.org/bpmn"
xmi:id="_wx9oUI5WEd2Mt-WZNTKS6A" iD="_wx9BQI5WEd2Mt-WZNTKS6A">
<pools xmi:type="bpmn:Pool" xmi:id="_wy3AMI5WEd2Mt-WZNTKS6A"
iD="_wy2ZII5WEd2Mt-WZNTKS6A" name="p">
<vertices xmi:type="bpmn:Activity" xmi:id="_wzKiMY5WEd2Mt-WZNTKS6A"
iD="_wzKiMI5WEd2Mt-WZNTKS6A" outgoingEdges="_23D2MZUYEd23Nbz676VHhg
_dxqpoZUZEd23Nbz676VHhg" incomingEdges="_2RvioZUYEd23Nbz676VHhg"
name="t" activityType="Task"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_yLSqoZUYEd23Nbz676VHhg"
iD="_yLSqoJUYEd23Nbz676VHhg" outgoingEdges="_2RvioZUYEd23Nbz676VHhg
_1NwsMZnxEd24PLaIKAfMrQ" incomingEdges="_dxqpoZUZEd23Nbz676VHhg" name="i"/>
<vertices xmi:type="bpmn:Activity" xmi:id="_1O4XcZUYEd23Nbz676VHhg"
iD="_1O4XcJUYEd23Nbz676VHhg" incomingEdges="_23D2MZUYEd23Nbz676VHhg
_1NwsMZnxEd24PLaIKAfMrQ" name="o"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge"
xmi:id="_2RvioZUYEd23Nbz676VHhg" iD="_2RvioJUYEd23Nbz676VHhg"
source="_yLSqoZUYEd23Nbz676VHhg" target="_wzKiMY5WEd2Mt-WZNTKS6A"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge"
xmi:id="_23D2MZUYEd23Nbz676VHhg" iD="_23D2MJUYEd23Nbz676VHhg"
source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_1O4XcZUYEd23Nbz676VHhg"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge"
xmi:id="_dxqpoZUZEd23Nbz676VHhg" iD="_dxqpoJUZEd23Nbz676VHhg"
source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_yLSqoZUYEd23Nbz676VHhg"/>
<sequenceEdges xmi:type="bpmn:SequenceEdge"
xmi:id="_1NwsMZnxEd24PLaIKAfMrQ" iD="_1NwsMJnxEd24PLaIKAfMrQ"
source="_yLSqoZUYEd23Nbz676VHhg" target="_1O4XcZUYEd23Nbz676VHhg"/>
</pools>
</bpmn:BpmnDiagram>

to

<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:channels="http://www.cwi.nl/reo/channels"
xmlns:cwi.reo="http://www.cwi.nl/reo">
<cwi.reo:Module>
<connectors name="p">
<nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4 /6"
sinkEnds="/1"/>
<nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2 /8"
sinkEnds="/5"/>
<nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
<primitives xsi:type="channels:Sync">
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
<\primivites>
<primitives xsi:type="channels:Sync">
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
<\primivites>
<primitives xsi:type="channels:Sync">
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
<\primivites>
<primitives xsi:type="channels:Sync">
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
<\primivites>
</connectors>
</cwi.reo:Module>
</xmi:XMI>



using:

rule diagram2module
{
from
bd : bpmn!BpmnDiagram
to
m : reo!Module(name <- bd.name, connectors <- bd.pools)
}

rule pool2connetor
{
from
p :bpmn!Pool
to
c : reo!Connector(name<-p.name, nodes<-p.vertices, primitives <-
p.sequenceEdges)
}
rule sequenceEdge2primitive
{
from
q : bpmn!SequenceEdge
to

y : reo!Sync(sourceEnd <- s, sinkEnd <- t),
t : reo!SinkEnd(node <- q.target),
s : reo!SourceEnd(node <- q.source)
}

rule task2node3
{
from
a : bpmn!Activity(not a.TaskWithInOutEdges(1,
1))--a.TaskWithInOutEdges(1, 2))
to
n : reo!Node(name <- a.name + ' rule: task2node3'+'
#reoSync:'+reo!Sync.allInstances()->size()->toString())
}



BUT the result I get from running these ATL rules is:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:channels="http://www.cwi.nl/reo/channels"
xmlns:cwi.reo="http://www.cwi.nl/reo">
<cwi.reo:Module>
<connectors name="p">
<nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4 /6"
sinkEnds="/1"/>
<nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2 /8"
sinkEnds="/5"/>
<nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
<primitives xsi:type="channels:Sync"/>
<primitives xsi:type="channels:Sync"/>
<primitives xsi:type="channels:Sync"/>
<primitives xsi:type="channels:Sync"/>
</connectors>
</cwi.reo:Module>
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
<cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
<cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
</xmi:XMI>

I don't know how to deal with this problem. I would appreciate your kind
help.
Best Regards,
Behnaz
Re: ATL: Problem with Nesting rule [message #92822 is a reply to message #92760] Tue, 21 October 2008 09:41 Go to previous messageGo to next message
Freddy Allilaire is currently offline Freddy AllilaireFriend
Messages: 130
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------050005000708040309010405
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Hi Behnaz,

The problem seems to come from the rule "sequenceEdge2primitive".
Do you have some errors reported in Console View?
And could you give us the REO metamodel excerpt with Sync, SinkEnd, and
SourceEnd classes?

Regards,
Freddy.

Behnaz a
Re: ATL: Problem with Nesting rule [message #92872 is a reply to message #92822] Tue, 21 October 2008 11:26 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

Hi Freddy,
Thanks a lot for your consideration.
Here is the related part of Reo meta model.
Best Regards,
Behnaz

<eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd" abstract="true">
<eOperations name="getNode" eType="#//Node"/>
<eOperations name="setNode">
<eParameters name="node" eType="#//Node"/>
</eOperations>
<eOperations name="getPrimitive" eType="#//Primitive"/>
<eOperations name="setPrimitive">
<eParameters name="primitive" eType="#//Primitive"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sourceEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sourceEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sinkEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sinkEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="NodeType">
<eLiterals name="REPLICATE" literal="replicate"/>
<eLiterals name="ROUTE" value="1" literal="route"/>
<eLiterals name="JOIN" value="2" literal="join"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Property">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Network"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="update"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component"/>
</eClassifiers>
<eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
nsPrefix="channels">
<eClassifiers xsi:type="ecore:EClass" name="Sync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="LossySync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="FIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="Filter"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="expression" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Transform"
eSuperTypes="#//primitives/DirectedChannel">
Freddy Allilaire wrote:
> Hi Behnaz,
>
> The problem seems to come from the rule "sequenceEdge2primitive".
> Do you have some errors reported in Console View?
> And could you give us the REO metamodel excerpt with Sync, SinkEnd, and
> SourceEnd classes?
>
> Regards,
> Freddy.
>
> Behnaz a écrit :
>> Hi everybody,
>> I am new on ATL. I am trying to translate
>> input:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <bpmn:BpmnDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:bpmn="http://stp.eclipse.org/bpmn"
>> xmi:id="_wx9oUI5WEd2Mt-WZNTKS6A" iD="_wx9BQI5WEd2Mt-WZNTKS6A">
>> <pools xmi:type="bpmn:Pool" xmi:id="_wy3AMI5WEd2Mt-WZNTKS6A"
>> iD="_wy2ZII5WEd2Mt-WZNTKS6A" name="p">
>> <vertices xmi:type="bpmn:Activity"
>> xmi:id="_wzKiMY5WEd2Mt-WZNTKS6A" iD="_wzKiMI5WEd2Mt-WZNTKS6A"
>> outgoingEdges="_23D2MZUYEd23Nbz676VHhg _dxqpoZUZEd23Nbz676VHhg"
>> incomingEdges="_2RvioZUYEd23Nbz676VHhg" name="t" activityType="Task"/>
>> <vertices xmi:type="bpmn:Activity"
>> xmi:id="_yLSqoZUYEd23Nbz676VHhg" iD="_yLSqoJUYEd23Nbz676VHhg"
>> outgoingEdges="_2RvioZUYEd23Nbz676VHhg _1NwsMZnxEd24PLaIKAfMrQ"
>> incomingEdges="_dxqpoZUZEd23Nbz676VHhg" name="i"/>
>> <vertices xmi:type="bpmn:Activity"
>> xmi:id="_1O4XcZUYEd23Nbz676VHhg" iD="_1O4XcJUYEd23Nbz676VHhg"
>> incomingEdges="_23D2MZUYEd23Nbz676VHhg _1NwsMZnxEd24PLaIKAfMrQ"
>> name="o"/>
>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>> xmi:id="_2RvioZUYEd23Nbz676VHhg" iD="_2RvioJUYEd23Nbz676VHhg"
>> source="_yLSqoZUYEd23Nbz676VHhg" target="_wzKiMY5WEd2Mt-WZNTKS6A"/>
>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>> xmi:id="_23D2MZUYEd23Nbz676VHhg" iD="_23D2MJUYEd23Nbz676VHhg"
>> source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_1O4XcZUYEd23Nbz676VHhg"/>
>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>> xmi:id="_dxqpoZUZEd23Nbz676VHhg" iD="_dxqpoJUZEd23Nbz676VHhg"
>> source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_yLSqoZUYEd23Nbz676VHhg"/>
>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>> xmi:id="_1NwsMZnxEd24PLaIKAfMrQ" iD="_1NwsMJnxEd24PLaIKAfMrQ"
>> source="_yLSqoZUYEd23Nbz676VHhg" target="_1O4XcZUYEd23Nbz676VHhg"/>
>> </pools>
>> </bpmn:BpmnDiagram>
>>
>> to
>>
>> <?xml version="1.0" encoding="ISO-8859-1"?>
>> <xmi:XMI xmi:version="2.0"
>> xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:channels="http://www.cwi.nl/reo/channels"
>> xmlns:cwi.reo="http://www.cwi.nl/reo">
>> <cwi.reo:Module>
>> <connectors name="p">
>> <nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4 /6"
>> sinkEnds="/1"/>
>> <nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2 /8"
>> sinkEnds="/5"/>
>> <nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
>> <primitives xsi:type="channels:Sync">
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>> <\primivites>
>> <primitives xsi:type="channels:Sync">
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>> <\primivites>
>> <primitives xsi:type="channels:Sync">
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>> <\primivites>
>> <primitives xsi:type="channels:Sync">
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>> <\primivites>
>> </connectors>
>> </cwi.reo:Module>
>> </xmi:XMI>
>>
>>
>>
>> using:
>>
>> rule diagram2module
>> {
>> from
>> bd : bpmn!BpmnDiagram
>> to
>> m : reo!Module(name <- bd.name, connectors <- bd.pools)
>> }
>>
>> rule pool2connetor
>> {
>> from
>> p :bpmn!Pool
>> to
>> c : reo!Connector(name<-p.name, nodes<-p.vertices, primitives
>> <- p.sequenceEdges)
>> }
>> rule sequenceEdge2primitive
>> {
>> from
>> q : bpmn!SequenceEdge
>> to
>> y : reo!Sync(sourceEnd <- s, sinkEnd <- t),
>> t : reo!SinkEnd(node <- q.target),
>> s : reo!SourceEnd(node <- q.source)
>> }
>>
>> rule task2node3
>> {
>> from
>> a : bpmn!Activity(not a.TaskWithInOutEdges(1,
>> 1))--a.TaskWithInOutEdges(1, 2))
>> to
>> n : reo!Node(name <- a.name + ' rule: task2node3'+'
>> #reoSync:'+reo!Sync.allInstances()->size()->toString())
>> }
>>
>>
>>
>> BUT the result I get from running these ATL rules is:
>> <?xml version="1.0" encoding="ISO-8859-1"?>
>> <xmi:XMI xmi:version="2.0"
>> xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:channels="http://www.cwi.nl/reo/channels"
>> xmlns:cwi.reo="http://www.cwi.nl/reo">
>> <cwi.reo:Module>
>> <connectors name="p">
>> <nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4 /6"
>> sinkEnds="/1"/>
>> <nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2 /8"
>> sinkEnds="/5"/>
>> <nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
>> <primitives xsi:type="channels:Sync"/>
>> <primitives xsi:type="channels:Sync"/>
>> <primitives xsi:type="channels:Sync"/>
>> <primitives xsi:type="channels:Sync"/>
>> </connectors>
>> </cwi.reo:Module>
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>> </xmi:XMI>
>>
>> I don't know how to deal with this problem. I would appreciate your
>> kind help.
>> Best Regards,
>> Behnaz
>
Re: ATL: Problem with Nesting rule [message #92889 is a reply to message #92872] Tue, 21 October 2008 12:54 Go to previous messageGo to next message
Freddy Allilaire is currently offline Freddy AllilaireFriend
Messages: 130
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------020309080607070107060509
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Thanks, unfortunately it misses DirectedChannel class (and maybe
others). Is it possible to see the whole metamodel?

Regards,
Freddy.

Behnaz a
Re: ATL: Problem with Nesting rule [message #92912 is a reply to message #92889] Tue, 21 October 2008 13:11 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

This is a multi-part message in MIME format.
--------------060209000408050500090801
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Hi Freddy,
It is whole of metamodel.
Best Regards,
Behnaz

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
<eClassifiers xsi:type="ecore:EClass" name="Module">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connector"
eSuperTypes="#//animation/AnimatableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
upperBound="-1"
eType="#//Node" containment="true" eOpposite="#//Node/connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
upperBound="-1"
eType="#//Primitive" containment="true"
eOpposite="#//Primitive/connector"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="subConnectors" upperBound="-1"
eType="#//Connector" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Component"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="properties"
upperBound="-1"
eType="#//Property" containment="true" eKeys="#//Property/key"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Node"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="getAllEnds" upperBound="-1"
eType="#//PrimitiveEnd"/>
<eOperations name="isSourceNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="isSinkNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="isMixedNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connector"
eType="#//Connector"
eOpposite="#//Connector/nodes"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
upperBound="-1"
eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
upperBound="-1"
eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="#//NodeType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Primitive"
abstract="true" eSuperTypes="#//animation/AnimatableElement">
<eOperations name="initializeEnds"/>
<eOperations name="disconnectEnds"/>
<eOperations name="isConnected" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="getName" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
upperBound="-1"
eType="#//SourceEnd" containment="true"
eOpposite="#//SourceEnd/primitive"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
upperBound="-1"
eType="#//SinkEnd" containment="true"
eOpposite="#//SinkEnd/primitive"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connector"
eType="#//Connector"
eOpposite="#//Connector/primitives"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
abstract="true">
<eOperations name="getNode" eType="#//Node"/>
<eOperations name="setNode">
<eParameters name="node" eType="#//Node"/>
</eOperations>
<eOperations name="getPrimitive" eType="#//Primitive"/>
<eOperations name="setPrimitive">
<eParameters name="primitive" eType="#//Primitive"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sourceEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sourceEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sinkEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sinkEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="NodeType">
<eLiterals name="REPLICATE" literal="replicate"/>
<eLiterals name="ROUTE" value="1" literal="route"/>
<eLiterals name="JOIN" value="2" literal="join"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Property">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Network"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="update"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component"/>
</eClassifiers>
<eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
nsPrefix="channels">
<eClassifiers xsi:type="ecore:EClass" name="Sync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="LossySync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="FIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="Filter"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="expression" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Transform"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="expression" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Timer"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="colouring"
nsURI="http://www.cwi.nl/reo/colouring" nsPrefix="colouring">
<eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
<eLiterals name="FLOW" literal="---"/>
<eLiterals name="NO_FLOW" value="1" literal="-!-"/>
<eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
<eLiterals name="NO_FLOW_REQUIRE_REASON" value="3" literal="-&lt;-"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Colouring">
<eOperations name="join" eType="#//colouring/Colouring">
<eParameters name="function" eType="#//colouring/Colouring"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="colours"
ordered="false"
upperBound="-1"
eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="nextColouringTable" eType="#//colouring/ColouringTable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parts"
ordered="false"
upperBound="-1" eType="#//colouring/Colouring" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
<eOperations name="join">
<eParameters name="table" eType="#//colouring/ColouringTable"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference"
name="colourings" upperBound="-1"
eType="#//colouring/Colouring" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Colourable"
abstract="true" interface="true">
<eOperations name="getColouringTable"
eType="#//colouring/ColouringTable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
abstract="true"
eSuperTypes="#//colouring/Colourable">
<eStructuralFeatures xsi:type="ecore:EReference"
name="colouringTable" eType="#//colouring/ColouringTable"
changeable="false" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass"
name="PrimitiveEndToColourMapEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EReference" name="key"
eType="#//PrimitiveEnd"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="#//colouring/FlowColour"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="primitives"
nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
<eClassifiers xsi:type="ecore:EClass" name="Channel"
abstract="true" eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference"
name="channelEndOne" eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="channelEndTwo" eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
eType="#//Node"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
eType="#//Node"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndOne" eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndTwo" eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndOne" eType="#//SinkEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndTwo" eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Reader"
eSuperTypes="#//primitives/IOOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer"
eSuperTypes="#//primitives/IOOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IOOperation"
abstract="true" eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="requestCount" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Replicator"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndOne" eType="#//SinkEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndTwo" eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Merger"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndOne" eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndTwo" eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="animation"
nsURI="http://www.cwi.nl/reo/animation" nsPrefix="animation">
<eClassifiers xsi:type="ecore:EClass" name="Animatable"
abstract="true" interface="true"
eSuperTypes="#//colouring/Colourable">
<eOperations name="getAnimationTable"
eType="#//animation/AnimationTable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnimatableElement"
abstract="true"
eSuperTypes="#//colouring/ColourableElement"/>
<eClassifiers xsi:type="ecore:EClass" name="Animation"
eSuperTypes="#//colouring/Colouring">
<eOperations name="merge" eType="#//animation/Animation">
<eParameters name="animation" eType="#//animation/Animation"/>
</eOperations>
<eOperations name="append" eType="#//animation/Animation">
<eParameters name="animation" eType="#//animation/Animation"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="steps"
upperBound="-1"
eType="#//animation/AnimationStep" containment="true"
eOpposite="#//animation/AnimationStep/animation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnimationTable"
eSuperTypes="#//colouring/ColouringTable"/>
<eClassifiers xsi:type="ecore:EClass" name="AnimationStep"
abstract="true">
<eStructuralFeatures xsi:type="ecore:EReference"
name="activeEnds" upperBound="-1"
eType="#//PrimitiveEnd"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="animation"
eType="#//animation/Animation"
eOpposite="#//animation/Animation/steps"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="SendTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="ReceiveTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="ReplicateTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="DestroyTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
</eSubpackages>
<eSubpackages name="components"
nsURI="http://www.cwi.nl/reo/components" nsPrefix="components">
<eClassifiers xsi:type="ecore:EClass" name="Reader"
eSuperTypes="#//components/SingleEndComponent">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer"
eSuperTypes="#//components/SingleEndComponent">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleEndComponent"
abstract="true"
eSuperTypes="#//Component">
<eStructuralFeatures xsi:type="ecore:EReference" name="end"
eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="requests"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
volatile="true" transient="true" defaultValueLiteral="1"/>
</eClassifiers>
</eSubpackages>
</ecore:EPackage>



Freddy Allilaire wrote:
> Thanks, unfortunately it misses DirectedChannel class (and maybe
> others). Is it possible to see the whole metamodel?
>
> Regards,
> Freddy.
>
> Behnaz a
Re: ATL: Problem with Nesting rule [message #93019 is a reply to message #92912] Tue, 21 October 2008 16:15 Go to previous messageGo to next message
Freddy Allilaire is currently offline Freddy AllilaireFriend
Messages: 130
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------060905030204030901010005
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

I am not an expert on how EMF serializes XMI and moreover of REA
metamodel ;-) but the created file seems correct to me.

SourceEnd & SinkEnd elements are not contained because containment
property of sourceEnd & sinkEnd references (in DirectedChannel class)
are set to false. But it might not be a problem to use your created model.

For more details on EMF model serialization maybe you should ask on EMF
newsgroup.

Regards,
Freddy.

Behnaz a
Re: ATL: Problem with Nesting rule [message #93040 is a reply to message #93019] Wed, 22 October 2008 09:02 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

Hi Freddy,
Thanks soooooooooooooooooooo much! It worked! I just set the containment
attributes to true.
Cheers,
Behnaz

Freddy Allilaire wrote:
> I am not an expert on how EMF serializes XMI and moreover of REA
> metamodel ;-) but the created file seems correct to me.
>
> SourceEnd & SinkEnd elements are not contained because containment
> property of sourceEnd & sinkEnd references (in DirectedChannel class)
> are set to false. But it might not be a problem to use your created model.
>
> For more details on EMF model serialization maybe you should ask on EMF
> newsgroup.
>
> Regards,
> Freddy.
>
> Behnaz a écrit :
>> Hi Freddy,
>> It is whole of metamodel.
>> Best Regards,
>> Behnaz
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <ecore:EPackage xmi:version="2.0"
>> xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
>> nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
>> <eClassifiers xsi:type="ecore:EClass" name="Module">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
>> upperBound="-1"
>> eType="#//Connector" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
>> upperBound="-1"
>> eType="#//Component" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Connector"
>> eSuperTypes="#//animation/AnimatableElement">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
>> derived="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
>> upperBound="-1"
>> eType="#//Node" containment="true"
>> eOpposite="#//Node/connector"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
>> upperBound="-1"
>> eType="#//Primitive" containment="true"
>> eOpposite="#//Primitive/connector"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="subConnectors" upperBound="-1"
>> eType="#//Connector" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Component"
>> eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
>> derived="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
>> derived="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="properties"
>> upperBound="-1"
>> eType="#//Property" containment="true" eKeys="#//Property/key"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Node"
>> eSuperTypes="#//animation/AnimatableElement">
>> <eOperations name="getAllEnds" upperBound="-1"
>> eType="#//PrimitiveEnd"/>
>> <eOperations name="isSourceNode" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eOperations name="isSinkNode" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eOperations name="isMixedNode" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
>> eType="#//Connector"
>> eOpposite="#//Connector/nodes"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
>> upperBound="-1"
>> eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
>> upperBound="-1"
>> eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>> eType="#//NodeType"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Primitive"
>> abstract="true" eSuperTypes="#//animation/AnimatableElement">
>> <eOperations name="initializeEnds"/>
>> <eOperations name="disconnectEnds"/>
>> <eOperations name="isConnected" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eOperations name="getName" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
>> upperBound="-1"
>> eType="#//SourceEnd" containment="true"
>> eOpposite="#//SourceEnd/primitive"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
>> upperBound="-1"
>> eType="#//SinkEnd" containment="true"
>> eOpposite="#//SinkEnd/primitive"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
>> eType="#//Connector"
>> eOpposite="#//Connector/primitives"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
>> abstract="true">
>> <eOperations name="getNode" eType="#//Node"/>
>> <eOperations name="setNode">
>> <eParameters name="node" eType="#//Node"/>
>> </eOperations>
>> <eOperations name="getPrimitive" eType="#//Primitive"/>
>> <eOperations name="setPrimitive">
>> <eParameters name="primitive" eType="#//Primitive"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
>> eSuperTypes="#//PrimitiveEnd">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>> eType="#//Node" eOpposite="#//Node/sourceEnds"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
>> eType="#//Primitive"
>> eOpposite="#//Primitive/sourceEnds"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
>> eSuperTypes="#//PrimitiveEnd">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>> eType="#//Node" eOpposite="#//Node/sinkEnds"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
>> eType="#//Primitive"
>> eOpposite="#//Primitive/sinkEnds"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="NodeType">
>> <eLiterals name="REPLICATE" literal="replicate"/>
>> <eLiterals name="ROUTE" value="1" literal="route"/>
>> <eLiterals name="JOIN" value="2" literal="join"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Property">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Network"
>> eSuperTypes="#//animation/AnimatableElement">
>> <eOperations name="update"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
>> upperBound="-1"
>> eType="#//Connector"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
>> upperBound="-1"
>> eType="#//Component"/>
>> </eClassifiers>
>> <eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
>> nsPrefix="channels">
>> <eClassifiers xsi:type="ecore:EClass" name="Sync"
>> eSuperTypes="#//primitives/DirectedChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="LossySync"
>> eSuperTypes="#//primitives/DirectedChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="FIFO"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
>> eSuperTypes="#//primitives/DrainChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
>> eSuperTypes="#//primitives/DrainChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
>> eSuperTypes="#//primitives/SpoutChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
>> eSuperTypes="#//primitives/SpoutChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="Filter"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="expression" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Transform"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="expression" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Timer"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> </eClassifiers>
>> </eSubpackages>
>> <eSubpackages name="colouring"
>> nsURI="http://www.cwi.nl/reo/colouring" nsPrefix="colouring">
>> <eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
>> <eLiterals name="FLOW" literal="---"/>
>> <eLiterals name="NO_FLOW" value="1" literal="-!-"/>
>> <eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
>> <eLiterals name="NO_FLOW_REQUIRE_REASON" value="3"
>> literal="-&lt;-"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Colouring">
>> <eOperations name="join" eType="#//colouring/Colouring">
>> <eParameters name="function" eType="#//colouring/Colouring"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="colours"
>> ordered="false"
>> upperBound="-1"
>> eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="nextColouringTable" eType="#//colouring/ColouringTable"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="parts"
>> ordered="false"
>> upperBound="-1" eType="#//colouring/Colouring"
>> transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
>> <eOperations name="join">
>> <eParameters name="table" eType="#//colouring/ColouringTable"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="colourings" upperBound="-1"
>> eType="#//colouring/Colouring" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
>> defaultValueLiteral="3"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Colourable"
>> abstract="true" interface="true">
>> <eOperations name="getColouringTable"
>> eType="#//colouring/ColouringTable"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
>> abstract="true"
>> eSuperTypes="#//colouring/Colourable">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="colouringTable" eType="#//colouring/ColouringTable"
>> changeable="false" transient="true" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass"
>> name="PrimitiveEndToColourMapEntry"
>> instanceClassName="java.util.Map$Entry">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="key"
>> eType="#//PrimitiveEnd"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
>> eType="#//colouring/FlowColour"/>
>> </eClassifiers>
>> </eSubpackages>
>> <eSubpackages name="primitives"
>> nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
>> <eClassifiers xsi:type="ecore:EClass" name="Channel"
>> abstract="true" eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="channelEndOne" eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="channelEndTwo" eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
>> eType="#//Node"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
>> eType="#//Node"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
>> abstract="true" eSuperTypes="#//primitives/Channel">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
>> abstract="true" eSuperTypes="#//primitives/Channel">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndOne" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndTwo" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
>> abstract="true" eSuperTypes="#//primitives/Channel">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndOne" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndTwo" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Reader"
>> eSuperTypes="#//primitives/IOOperation">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Writer"
>> eSuperTypes="#//primitives/IOOperation">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="IOOperation"
>> abstract="true" eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="requestCount" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EInt"
>> defaultValueLiteral="1"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
>> eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>> eType="#//Node"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Replicator"
>> eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndOne" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndTwo" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Merger"
>> eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndOne" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndTwo" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> </eSubpackages>
>> <eSubpackages name="animation"
>> nsURI="http://www.cwi.nl/reo/animation" nsPrefix="animation">
>> <eClassifiers xsi:type="ecore:EClass" name="Animatable"
>> abstract="true" interface="true"
>> eSuperTypes="#//colouring/Colourable">
>> <eOperations name="getAnimationTable"
>> eType="#//animation/AnimationTable"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="AnimatableElement"
>> abstract="true"
>> eSuperTypes="#//colouring/ColourableElement"/>
>> <eClassifiers xsi:type="ecore:EClass" name="Animation"
>> eSuperTypes="#//colouring/Colouring">
>> <eOperations name="merge" eType="#//animation/Animation">
>> <eParameters name="animation" eType="#//animation/Animation"/>
>> </eOperations>
>> <eOperations name="append" eType="#//animation/Animation">
>> <eParameters name="animation" eType="#//animation/Animation"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="steps"
>> upperBound="-1"
>> eType="#//animation/AnimationStep" containment="true"
>> eOpposite="#//animation/AnimationStep/animation"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="AnimationTable"
>> eSuperTypes="#//colouring/ColouringTable"/>
>> <eClassifiers xsi:type="ecore:EClass" name="AnimationStep"
>> abstract="true">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="activeEnds" upperBound="-1"
>> eType="#//PrimitiveEnd"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="animation" eType="#//animation/Animation"
>> eOpposite="#//animation/Animation/steps"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="CreateTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="SendTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="ReceiveTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="ReplicateTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="DestroyTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> </eSubpackages>
>> <eSubpackages name="components"
>> nsURI="http://www.cwi.nl/reo/components" nsPrefix="components">
>> <eClassifiers xsi:type="ecore:EClass" name="Reader"
>> eSuperTypes="#//components/SingleEndComponent">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Writer"
>> eSuperTypes="#//components/SingleEndComponent">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SingleEndComponent"
>> abstract="true"
>> eSuperTypes="#//Component">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="end"
>> eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="requests"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
>> volatile="true" transient="true" defaultValueLiteral="1"/>
>> </eClassifiers>
>> </eSubpackages>
>> </ecore:EPackage>
>>
>>
>>
>> Freddy Allilaire wrote:
>>> Thanks, unfortunately it misses DirectedChannel class (and maybe
>>> others). Is it possible to see the whole metamodel?
>>>
>>> Regards,
>>> Freddy.
>>>
>>> Behnaz a écrit :
>>>> Hi Freddy,
>>>> Thanks a lot for your consideration.
>>>> Here is the related part of Reo meta model.
>>>> Best Regards,
>>>> Behnaz
>>>>
>>>> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
>>>> abstract="true">
>>>> <eOperations name="getNode" eType="#//Node"/>
>>>> <eOperations name="setNode">
>>>> <eParameters name="node" eType="#//Node"/>
>>>> </eOperations>
>>>> <eOperations name="getPrimitive" eType="#//Primitive"/>
>>>> <eOperations name="setPrimitive">
>>>> <eParameters name="primitive" eType="#//Primitive"/>
>>>> </eOperations>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
>>>> eSuperTypes="#//PrimitiveEnd">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>>>> eType="#//Node" eOpposite="#//Node/sourceEnds"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="primitive" eType="#//Primitive"
>>>> eOpposite="#//Primitive/sourceEnds"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
>>>> eSuperTypes="#//PrimitiveEnd">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>>>> eType="#//Node" eOpposite="#//Node/sinkEnds"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="primitive" eType="#//Primitive"
>>>> eOpposite="#//Primitive/sinkEnds"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="NodeType">
>>>> <eLiterals name="REPLICATE" literal="replicate"/>
>>>> <eLiterals name="ROUTE" value="1" literal="route"/>
>>>> <eLiterals name="JOIN" value="2" literal="join"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Property">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Network"
>>>> eSuperTypes="#//animation/AnimatableElement">
>>>> <eOperations name="update"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="connectors" upperBound="-1"
>>>> eType="#//Connector"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="components" upperBound="-1"
>>>> eType="#//Component"/>
>>>> </eClassifiers>
>>>> <eSubpackages name="channels"
>>>> nsURI="http://www.cwi.nl/reo/channels" nsPrefix="channels">
>>>> <eClassifiers xsi:type="ecore:EClass" name="Sync"
>>>> eSuperTypes="#//primitives/DirectedChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="LossySync"
>>>> eSuperTypes="#//primitives/DirectedChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="FIFO"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
>>>> eSuperTypes="#//primitives/DrainChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
>>>> eSuperTypes="#//primitives/DrainChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
>>>> eSuperTypes="#//primitives/SpoutChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
>>>> eSuperTypes="#//primitives/SpoutChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Filter"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="expression" eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Transform"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> Freddy Allilaire wrote:
>>>>> Hi Behnaz,
>>>>>
>>>>> The problem seems to come from the rule "sequenceEdge2primitive".
>>>>> Do you have some errors reported in Console View?
>>>>> And could you give us the REO metamodel excerpt with Sync, SinkEnd,
>>>>> and SourceEnd classes?
>>>>>
>>>>> Regards,
>>>>> Freddy.
>>>>>
>>>>> Behnaz a écrit :
>>>>>> Hi everybody,
>>>>>> I am new on ATL. I am trying to translate
>>>>>> input:
>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>> <bpmn:BpmnDiagram xmi:version="2.0"
>>>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>>>> xmlns:bpmn="http://stp.eclipse.org/bpmn"
>>>>>> xmi:id="_wx9oUI5WEd2Mt-WZNTKS6A" iD="_wx9BQI5WEd2Mt-WZNTKS6A">
>>>>>> <pools xmi:type="bpmn:Pool" xmi:id="_wy3AMI5WEd2Mt-WZNTKS6A"
>>>>>> iD="_wy2ZII5WEd2Mt-WZNTKS6A" name="p">
>>>>>> <vertices xmi:type="bpmn:Activity"
>>>>>> xmi:id="_wzKiMY5WEd2Mt-WZNTKS6A" iD="_wzKiMI5WEd2Mt-WZNTKS6A"
>>>>>> outgoingEdges="_23D2MZUYEd23Nbz676VHhg _dxqpoZUZEd23Nbz676VHhg"
>>>>>> incomingEdges="_2RvioZUYEd23Nbz676VHhg" name="t"
>>>>>> activityType="Task"/>
>>>>>> <vertices xmi:type="bpmn:Activity"
>>>>>> xmi:id="_yLSqoZUYEd23Nbz676VHhg" iD="_yLSqoJUYEd23Nbz676VHhg"
>>>>>> outgoingEdges="_2RvioZUYEd23Nbz676VHhg _1NwsMZnxEd24PLaIKAfMrQ"
>>>>>> incomingEdges="_dxqpoZUZEd23Nbz676VHhg" name="i"/>
>>>>>> <vertices xmi:type="bpmn:Activity"
>>>>>> xmi:id="_1O4XcZUYEd23Nbz676VHhg" iD="_1O4XcJUYEd23Nbz676VHhg"
>>>>>> incomingEdges="_23D2MZUYEd23Nbz676VHhg _1NwsMZnxEd24PLaIKAfMrQ"
>>>>>> name="o"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_2RvioZUYEd23Nbz676VHhg" iD="_2RvioJUYEd23Nbz676VHhg"
>>>>>> source="_yLSqoZUYEd23Nbz676VHhg" target="_wzKiMY5WEd2Mt-WZNTKS6A"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_23D2MZUYEd23Nbz676VHhg" iD="_23D2MJUYEd23Nbz676VHhg"
>>>>>> source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_1O4XcZUYEd23Nbz676VHhg"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_dxqpoZUZEd23Nbz676VHhg" iD="_dxqpoJUZEd23Nbz676VHhg"
>>>>>> source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_yLSqoZUYEd23Nbz676VHhg"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_1NwsMZnxEd24PLaIKAfMrQ" iD="_1NwsMJnxEd24PLaIKAfMrQ"
>>>>>> source="_yLSqoZUYEd23Nbz676VHhg" target="_1O4XcZUYEd23Nbz676VHhg"/>
>>>>>> </pools>
>>>>>> </bpmn:BpmnDiagram>
>>>>>>
>>>>>> to
>>>>>>
>>>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>>>> <xmi:XMI xmi:version="2.0"
>>>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>> xmlns:channels="http://www.cwi.nl/reo/channels"
>>>>>> xmlns:cwi.reo="http://www.cwi.nl/reo">
>>>>>> <cwi.reo:Module>
>>>>>> <connectors name="p">
>>>>>> <nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4
>>>>>> /6" sinkEnds="/1"/>
>>>>>> <nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2
>>>>>> /8" sinkEnds="/5"/>
>>>>>> <nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <\primivites>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <\primivites>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <\primivites>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <\primivites>
>>>>>> </connectors>
>>>>>> </cwi.reo:Module>
>>>>>> </xmi:XMI>
>>>>>>
>>>>>>
>>>>>>
>>>>>> using:
>>>>>>
>>>>>> rule diagram2module
>>>>>> {
>>>>>> from
>>>>>> bd : bpmn!BpmnDiagram
>>>>>> to
>>>>>> m : reo!Module(name <- bd.name, connectors <- bd.pools)
>>>>>> }
>>>>>>
>>>>>> rule pool2connetor
>>>>>> {
>>>>>> from
>>>>>> p :bpmn!Pool
>>>>>> to
>>>>>> c : reo!Connector(name<-p.name, nodes<-p.vertices,
>>>>>> primitives <- p.sequenceEdges)
>>>>>> }
>>>>>> rule sequenceEdge2primitive
>>>>>> {
>>>>>> from
>>>>>> q : bpmn!SequenceEdge
>>>>>> to
>>>>>> y : reo!Sync(sourceEnd <- s, sinkEnd <- t),
>>>>>> t : reo!SinkEnd(node <- q.target),
>>>>>> s : reo!SourceEnd(node <- q.source)
>>>>>> }
>>>>>>
>>>>>> rule task2node3
>>>>>> {
>>>>>> from
>>>>>> a : bpmn!Activity(not a.TaskWithInOutEdges(1,
>>>>>> 1))--a.TaskWithInOutEdges(1, 2))
>>>>>> to
>>>>>> n : reo!Node(name <- a.name + ' rule: task2node3'+'
>>>>>> #reoSync:'+reo!Sync.allInstances()->size()->toString())
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> BUT the result I get from running these ATL rules is:
>>>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>>>> <xmi:XMI xmi:version="2.0"
>>>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>> xmlns:channels="http://www.cwi.nl/reo/channels"
>>>>>> xmlns:cwi.reo="http://www.cwi.nl/reo">
>>>>>> <cwi.reo:Module>
>>>>>> <connectors name="p">
>>>>>> <nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4
>>>>>> /6" sinkEnds="/1"/>
>>>>>> <nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2
>>>>>> /8" sinkEnds="/5"/>
>>>>>> <nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> </connectors>
>>>>>> </cwi.reo:Module>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> </xmi:XMI>
>>>>>>
>>>>>> I don't know how to deal with this problem. I would appreciate
>>>>>> your kind help.
>>>>>> Best Regards,
>>>>>> Behnaz
>>>>>
>>>
>> i
>>
>
Re: ATL: Problem with Nesting rule [message #93095 is a reply to message #93019] Wed, 22 October 2008 15:54 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

Hi Freddy,
That's weird. The new rule as below made same problem:
rule task2node
{
from
a : bpmn!Activity(a.TaskWithInOutEdges(1, 1))
to
n : reo!FIFO(sourceEnds <- c, sinkEnds <- k),
c : reo!SourceEnd(node <- s),
k : reo!SinkEnd(node <- t),
s : reo!Node(name <- 'source'),--, sourceEnds <- n
t : reo!Node(name <- 'target') --, sinkEnds <- n
}

and the result:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:channels="http://www.cwi.nl/reo/channels"
xmlns:cwi.reo="http://www.cwi.nl/reo">
<cwi.reo:Module>
<connectors name="p">
<nodes xsi:type="channels:FIFO">
<sourceEnds node="/1"/>
<sinkEnds node="/2"/>
</nodes>
<nodes name="i rule: task2node3"
sourceEnds="/0/@connectors.0/@primitives.0/@sourceEnds.0"/ >
<nodes name="o rule: task2node3"
sinkEnds="/0/@connectors.0/@primitives.0/@sinkEnds.0"/>
<primitives xsi:type="channels:Sync">
<sourceEnds node="/0/@connectors.0/@nodes.1"/>
<sinkEnds node="/0/@connectors.0/@nodes.2"/>
</primitives>
</connectors>
</cwi.reo:Module>
<cwi.reo:Node name="source"
sourceEnds="/0/@connectors.0/@colouringTable/@sourceEnds.0"/ >
<cwi.reo:Node name="target"
sinkEnds="/0/@connectors.0/@colouringTable/@sinkEnds.0"/>
</xmi:XMI>


I expected two last Nodes appear in the Module not out of it.
Cheers,
Behnaz

Freddy Allilaire wrote:
> I am not an expert on how EMF serializes XMI and moreover of REA
> metamodel ;-) but the created file seems correct to me.
>
> SourceEnd & SinkEnd elements are not contained because containment
> property of sourceEnd & sinkEnd references (in DirectedChannel class)
> are set to false. But it might not be a problem to use your created model.
>
> For more details on EMF model serialization maybe you should ask on EMF
> newsgroup.
>
> Regards,
> Freddy.
>
> Behnaz a écrit :
>> Hi Freddy,
>> It is whole of metamodel.
>> Best Regards,
>> Behnaz
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <ecore:EPackage xmi:version="2.0"
>> xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
>> nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
>> <eClassifiers xsi:type="ecore:EClass" name="Module">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
>> upperBound="-1"
>> eType="#//Connector" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
>> upperBound="-1"
>> eType="#//Component" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Connector"
>> eSuperTypes="#//animation/AnimatableElement">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
>> derived="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
>> upperBound="-1"
>> eType="#//Node" containment="true"
>> eOpposite="#//Node/connector"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
>> upperBound="-1"
>> eType="#//Primitive" containment="true"
>> eOpposite="#//Primitive/connector"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="subConnectors" upperBound="-1"
>> eType="#//Connector" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Component"
>> eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
>> derived="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
>> derived="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="properties"
>> upperBound="-1"
>> eType="#//Property" containment="true" eKeys="#//Property/key"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Node"
>> eSuperTypes="#//animation/AnimatableElement">
>> <eOperations name="getAllEnds" upperBound="-1"
>> eType="#//PrimitiveEnd"/>
>> <eOperations name="isSourceNode" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eOperations name="isSinkNode" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eOperations name="isMixedNode" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
>> eType="#//Connector"
>> eOpposite="#//Connector/nodes"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
>> upperBound="-1"
>> eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
>> upperBound="-1"
>> eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>> eType="#//NodeType"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Primitive"
>> abstract="true" eSuperTypes="#//animation/AnimatableElement">
>> <eOperations name="initializeEnds"/>
>> <eOperations name="disconnectEnds"/>
>> <eOperations name="isConnected" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eOperations name="getName" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
>> upperBound="-1"
>> eType="#//SourceEnd" containment="true"
>> eOpposite="#//SourceEnd/primitive"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
>> upperBound="-1"
>> eType="#//SinkEnd" containment="true"
>> eOpposite="#//SinkEnd/primitive"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
>> eType="#//Connector"
>> eOpposite="#//Connector/primitives"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
>> abstract="true">
>> <eOperations name="getNode" eType="#//Node"/>
>> <eOperations name="setNode">
>> <eParameters name="node" eType="#//Node"/>
>> </eOperations>
>> <eOperations name="getPrimitive" eType="#//Primitive"/>
>> <eOperations name="setPrimitive">
>> <eParameters name="primitive" eType="#//Primitive"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
>> eSuperTypes="#//PrimitiveEnd">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>> eType="#//Node" eOpposite="#//Node/sourceEnds"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
>> eType="#//Primitive"
>> eOpposite="#//Primitive/sourceEnds"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
>> eSuperTypes="#//PrimitiveEnd">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>> eType="#//Node" eOpposite="#//Node/sinkEnds"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
>> eType="#//Primitive"
>> eOpposite="#//Primitive/sinkEnds"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EEnum" name="NodeType">
>> <eLiterals name="REPLICATE" literal="replicate"/>
>> <eLiterals name="ROUTE" value="1" literal="route"/>
>> <eLiterals name="JOIN" value="2" literal="join"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Property">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Network"
>> eSuperTypes="#//animation/AnimatableElement">
>> <eOperations name="update"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
>> upperBound="-1"
>> eType="#//Connector"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
>> upperBound="-1"
>> eType="#//Component"/>
>> </eClassifiers>
>> <eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
>> nsPrefix="channels">
>> <eClassifiers xsi:type="ecore:EClass" name="Sync"
>> eSuperTypes="#//primitives/DirectedChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="LossySync"
>> eSuperTypes="#//primitives/DirectedChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="FIFO"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
>> eSuperTypes="#//primitives/DrainChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
>> eSuperTypes="#//primitives/DrainChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
>> eSuperTypes="#//primitives/SpoutChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
>> eSuperTypes="#//primitives/SpoutChannel"/>
>> <eClassifiers xsi:type="ecore:EClass" name="Filter"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="expression" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Transform"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="expression" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Timer"
>> eSuperTypes="#//primitives/DirectedChannel">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
>> </eClassifiers>
>> </eSubpackages>
>> <eSubpackages name="colouring"
>> nsURI="http://www.cwi.nl/reo/colouring" nsPrefix="colouring">
>> <eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
>> <eLiterals name="FLOW" literal="---"/>
>> <eLiterals name="NO_FLOW" value="1" literal="-!-"/>
>> <eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
>> <eLiterals name="NO_FLOW_REQUIRE_REASON" value="3"
>> literal="-&lt;-"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Colouring">
>> <eOperations name="join" eType="#//colouring/Colouring">
>> <eParameters name="function" eType="#//colouring/Colouring"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="colours"
>> ordered="false"
>> upperBound="-1"
>> eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="nextColouringTable" eType="#//colouring/ColouringTable"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="parts"
>> ordered="false"
>> upperBound="-1" eType="#//colouring/Colouring"
>> transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
>> <eOperations name="join">
>> <eParameters name="table" eType="#//colouring/ColouringTable"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="colourings" upperBound="-1"
>> eType="#//colouring/Colouring" containment="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
>> defaultValueLiteral="3"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Colourable"
>> abstract="true" interface="true">
>> <eOperations name="getColouringTable"
>> eType="#//colouring/ColouringTable"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
>> abstract="true"
>> eSuperTypes="#//colouring/Colourable">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="colouringTable" eType="#//colouring/ColouringTable"
>> changeable="false" transient="true" containment="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass"
>> name="PrimitiveEndToColourMapEntry"
>> instanceClassName="java.util.Map$Entry">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="key"
>> eType="#//PrimitiveEnd"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
>> eType="#//colouring/FlowColour"/>
>> </eClassifiers>
>> </eSubpackages>
>> <eSubpackages name="primitives"
>> nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
>> <eClassifiers xsi:type="ecore:EClass" name="Channel"
>> abstract="true" eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="channelEndOne" eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="channelEndTwo" eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
>> eType="#//Node"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
>> eType="#//Node"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
>> abstract="true" eSuperTypes="#//primitives/Channel">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
>> abstract="true" eSuperTypes="#//primitives/Channel">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndOne" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndTwo" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
>> abstract="true" eSuperTypes="#//primitives/Channel">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndOne" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndTwo" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Reader"
>> eSuperTypes="#//primitives/IOOperation">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Writer"
>> eSuperTypes="#//primitives/IOOperation">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="IOOperation"
>> abstract="true" eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>> name="requestCount" eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EInt"
>> defaultValueLiteral="1"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
>> eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>> eType="#//Node"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Replicator"
>> eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndOne" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sinkEndTwo" eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Merger"
>> eSuperTypes="#//Primitive">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndOne" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEndTwo" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> </eSubpackages>
>> <eSubpackages name="animation"
>> nsURI="http://www.cwi.nl/reo/animation" nsPrefix="animation">
>> <eClassifiers xsi:type="ecore:EClass" name="Animatable"
>> abstract="true" interface="true"
>> eSuperTypes="#//colouring/Colourable">
>> <eOperations name="getAnimationTable"
>> eType="#//animation/AnimationTable"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="AnimatableElement"
>> abstract="true"
>> eSuperTypes="#//colouring/ColourableElement"/>
>> <eClassifiers xsi:type="ecore:EClass" name="Animation"
>> eSuperTypes="#//colouring/Colouring">
>> <eOperations name="merge" eType="#//animation/Animation">
>> <eParameters name="animation" eType="#//animation/Animation"/>
>> </eOperations>
>> <eOperations name="append" eType="#//animation/Animation">
>> <eParameters name="animation" eType="#//animation/Animation"/>
>> </eOperations>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="steps"
>> upperBound="-1"
>> eType="#//animation/AnimationStep" containment="true"
>> eOpposite="#//animation/AnimationStep/animation"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="AnimationTable"
>> eSuperTypes="#//colouring/ColouringTable"/>
>> <eClassifiers xsi:type="ecore:EClass" name="AnimationStep"
>> abstract="true">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="activeEnds" upperBound="-1"
>> eType="#//PrimitiveEnd"/>
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="animation" eType="#//animation/Animation"
>> eOpposite="#//animation/Animation/steps"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="CreateTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="SendTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="ReceiveTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="ReplicateTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> <eClassifiers xsi:type="ecore:EClass" name="DestroyTokenStep"
>> eSuperTypes="#//animation/AnimationStep"/>
>> </eSubpackages>
>> <eSubpackages name="components"
>> nsURI="http://www.cwi.nl/reo/components" nsPrefix="components">
>> <eClassifiers xsi:type="ecore:EClass" name="Reader"
>> eSuperTypes="#//components/SingleEndComponent">
>> <eStructuralFeatures xsi:type="ecore:EReference"
>> name="sourceEnd" eType="#//SourceEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="Writer"
>> eSuperTypes="#//components/SingleEndComponent">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
>> eType="#//SinkEnd"
>> volatile="true" transient="true"/>
>> </eClassifiers>
>> <eClassifiers xsi:type="ecore:EClass" name="SingleEndComponent"
>> abstract="true"
>> eSuperTypes="#//Component">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="end"
>> eType="#//PrimitiveEnd"
>> changeable="false" volatile="true" transient="true"/>
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="requests"
>> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
>> volatile="true" transient="true" defaultValueLiteral="1"/>
>> </eClassifiers>
>> </eSubpackages>
>> </ecore:EPackage>
>>
>>
>>
>> Freddy Allilaire wrote:
>>> Thanks, unfortunately it misses DirectedChannel class (and maybe
>>> others). Is it possible to see the whole metamodel?
>>>
>>> Regards,
>>> Freddy.
>>>
>>> Behnaz a écrit :
>>>> Hi Freddy,
>>>> Thanks a lot for your consideration.
>>>> Here is the related part of Reo meta model.
>>>> Best Regards,
>>>> Behnaz
>>>>
>>>> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
>>>> abstract="true">
>>>> <eOperations name="getNode" eType="#//Node"/>
>>>> <eOperations name="setNode">
>>>> <eParameters name="node" eType="#//Node"/>
>>>> </eOperations>
>>>> <eOperations name="getPrimitive" eType="#//Primitive"/>
>>>> <eOperations name="setPrimitive">
>>>> <eParameters name="primitive" eType="#//Primitive"/>
>>>> </eOperations>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
>>>> eSuperTypes="#//PrimitiveEnd">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>>>> eType="#//Node" eOpposite="#//Node/sourceEnds"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="primitive" eType="#//Primitive"
>>>> eOpposite="#//Primitive/sourceEnds"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
>>>> eSuperTypes="#//PrimitiveEnd">
>>>> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
>>>> eType="#//Node" eOpposite="#//Node/sinkEnds"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="primitive" eType="#//Primitive"
>>>> eOpposite="#//Primitive/sinkEnds"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EEnum" name="NodeType">
>>>> <eLiterals name="REPLICATE" literal="replicate"/>
>>>> <eLiterals name="ROUTE" value="1" literal="route"/>
>>>> <eLiterals name="JOIN" value="2" literal="join"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Property">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Network"
>>>> eSuperTypes="#//animation/AnimatableElement">
>>>> <eOperations name="update"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="connectors" upperBound="-1"
>>>> eType="#//Connector"/>
>>>> <eStructuralFeatures xsi:type="ecore:EReference"
>>>> name="components" upperBound="-1"
>>>> eType="#//Component"/>
>>>> </eClassifiers>
>>>> <eSubpackages name="channels"
>>>> nsURI="http://www.cwi.nl/reo/channels" nsPrefix="channels">
>>>> <eClassifiers xsi:type="ecore:EClass" name="Sync"
>>>> eSuperTypes="#//primitives/DirectedChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="LossySync"
>>>> eSuperTypes="#//primitives/DirectedChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="FIFO"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
>>>> eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
>>>> eSuperTypes="#//primitives/DrainChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
>>>> eSuperTypes="#//primitives/DrainChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
>>>> eSuperTypes="#//primitives/SpoutChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
>>>> eSuperTypes="#//primitives/SpoutChannel"/>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Filter"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> <eStructuralFeatures xsi:type="ecore:EAttribute"
>>>> name="expression" eType="ecore:EDataType
>>>> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
>>>> </eClassifiers>
>>>> <eClassifiers xsi:type="ecore:EClass" name="Transform"
>>>> eSuperTypes="#//primitives/DirectedChannel">
>>>> Freddy Allilaire wrote:
>>>>> Hi Behnaz,
>>>>>
>>>>> The problem seems to come from the rule "sequenceEdge2primitive".
>>>>> Do you have some errors reported in Console View?
>>>>> And could you give us the REO metamodel excerpt with Sync, SinkEnd,
>>>>> and SourceEnd classes?
>>>>>
>>>>> Regards,
>>>>> Freddy.
>>>>>
>>>>> Behnaz a écrit :
>>>>>> Hi everybody,
>>>>>> I am new on ATL. I am trying to translate
>>>>>> input:
>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>> <bpmn:BpmnDiagram xmi:version="2.0"
>>>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>>>> xmlns:bpmn="http://stp.eclipse.org/bpmn"
>>>>>> xmi:id="_wx9oUI5WEd2Mt-WZNTKS6A" iD="_wx9BQI5WEd2Mt-WZNTKS6A">
>>>>>> <pools xmi:type="bpmn:Pool" xmi:id="_wy3AMI5WEd2Mt-WZNTKS6A"
>>>>>> iD="_wy2ZII5WEd2Mt-WZNTKS6A" name="p">
>>>>>> <vertices xmi:type="bpmn:Activity"
>>>>>> xmi:id="_wzKiMY5WEd2Mt-WZNTKS6A" iD="_wzKiMI5WEd2Mt-WZNTKS6A"
>>>>>> outgoingEdges="_23D2MZUYEd23Nbz676VHhg _dxqpoZUZEd23Nbz676VHhg"
>>>>>> incomingEdges="_2RvioZUYEd23Nbz676VHhg" name="t"
>>>>>> activityType="Task"/>
>>>>>> <vertices xmi:type="bpmn:Activity"
>>>>>> xmi:id="_yLSqoZUYEd23Nbz676VHhg" iD="_yLSqoJUYEd23Nbz676VHhg"
>>>>>> outgoingEdges="_2RvioZUYEd23Nbz676VHhg _1NwsMZnxEd24PLaIKAfMrQ"
>>>>>> incomingEdges="_dxqpoZUZEd23Nbz676VHhg" name="i"/>
>>>>>> <vertices xmi:type="bpmn:Activity"
>>>>>> xmi:id="_1O4XcZUYEd23Nbz676VHhg" iD="_1O4XcJUYEd23Nbz676VHhg"
>>>>>> incomingEdges="_23D2MZUYEd23Nbz676VHhg _1NwsMZnxEd24PLaIKAfMrQ"
>>>>>> name="o"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_2RvioZUYEd23Nbz676VHhg" iD="_2RvioJUYEd23Nbz676VHhg"
>>>>>> source="_yLSqoZUYEd23Nbz676VHhg" target="_wzKiMY5WEd2Mt-WZNTKS6A"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_23D2MZUYEd23Nbz676VHhg" iD="_23D2MJUYEd23Nbz676VHhg"
>>>>>> source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_1O4XcZUYEd23Nbz676VHhg"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_dxqpoZUZEd23Nbz676VHhg" iD="_dxqpoJUZEd23Nbz676VHhg"
>>>>>> source="_wzKiMY5WEd2Mt-WZNTKS6A" target="_yLSqoZUYEd23Nbz676VHhg"/>
>>>>>> <sequenceEdges xmi:type="bpmn:SequenceEdge"
>>>>>> xmi:id="_1NwsMZnxEd24PLaIKAfMrQ" iD="_1NwsMJnxEd24PLaIKAfMrQ"
>>>>>> source="_yLSqoZUYEd23Nbz676VHhg" target="_1O4XcZUYEd23Nbz676VHhg"/>
>>>>>> </pools>
>>>>>> </bpmn:BpmnDiagram>
>>>>>>
>>>>>> to
>>>>>>
>>>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>>>> <xmi:XMI xmi:version="2.0"
>>>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>> xmlns:channels="http://www.cwi.nl/reo/channels"
>>>>>> xmlns:cwi.reo="http://www.cwi.nl/reo">
>>>>>> <cwi.reo:Module>
>>>>>> <connectors name="p">
>>>>>> <nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4
>>>>>> /6" sinkEnds="/1"/>
>>>>>> <nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2
>>>>>> /8" sinkEnds="/5"/>
>>>>>> <nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <\primivites>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <\primivites>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <\primivites>
>>>>>> <primitives xsi:type="channels:Sync">
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <\primivites>
>>>>>> </connectors>
>>>>>> </cwi.reo:Module>
>>>>>> </xmi:XMI>
>>>>>>
>>>>>>
>>>>>>
>>>>>> using:
>>>>>>
>>>>>> rule diagram2module
>>>>>> {
>>>>>> from
>>>>>> bd : bpmn!BpmnDiagram
>>>>>> to
>>>>>> m : reo!Module(name <- bd.name, connectors <- bd.pools)
>>>>>> }
>>>>>>
>>>>>> rule pool2connetor
>>>>>> {
>>>>>> from
>>>>>> p :bpmn!Pool
>>>>>> to
>>>>>> c : reo!Connector(name<-p.name, nodes<-p.vertices,
>>>>>> primitives <- p.sequenceEdges)
>>>>>> }
>>>>>> rule sequenceEdge2primitive
>>>>>> {
>>>>>> from
>>>>>> q : bpmn!SequenceEdge
>>>>>> to
>>>>>> y : reo!Sync(sourceEnd <- s, sinkEnd <- t),
>>>>>> t : reo!SinkEnd(node <- q.target),
>>>>>> s : reo!SourceEnd(node <- q.source)
>>>>>> }
>>>>>>
>>>>>> rule task2node3
>>>>>> {
>>>>>> from
>>>>>> a : bpmn!Activity(not a.TaskWithInOutEdges(1,
>>>>>> 1))--a.TaskWithInOutEdges(1, 2))
>>>>>> to
>>>>>> n : reo!Node(name <- a.name + ' rule: task2node3'+'
>>>>>> #reoSync:'+reo!Sync.allInstances()->size()->toString())
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> BUT the result I get from running these ATL rules is:
>>>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>>>> <xmi:XMI xmi:version="2.0"
>>>>>> xmlns:xmi="http://www.omg.org/XMI"
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>> xmlns:channels="http://www.cwi.nl/reo/channels"
>>>>>> xmlns:cwi.reo="http://www.cwi.nl/reo">
>>>>>> <cwi.reo:Module>
>>>>>> <connectors name="p">
>>>>>> <nodes name="t rule: task2node3 #reoSync:4" sourceEnds="/4
>>>>>> /6" sinkEnds="/1"/>
>>>>>> <nodes name="i rule: task2node3 #reoSync:4" sourceEnds="/2
>>>>>> /8" sinkEnds="/5"/>
>>>>>> <nodes name="o rule: task2node3 #reoSync:4" sinkEnds="/3 /7"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> <primitives xsi:type="channels:Sync"/>
>>>>>> </connectors>
>>>>>> </cwi.reo:Module>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.0"/>
>>>>>> <cwi.reo:SinkEnd node="/0/@connectors.0/@nodes.2"/>
>>>>>> <cwi.reo:SourceEnd node="/0/@connectors.0/@nodes.1"/>
>>>>>> </xmi:XMI>
>>>>>>
>>>>>> I don't know how to deal with this problem. I would appreciate
>>>>>> your kind help.
>>>>>> Best Regards,
>>>>>> Behnaz
>>>>>
>>>
>> i
>>
>
Re: ATL: Problem with Nesting rule [message #93130 is a reply to message #93095] Thu, 23 October 2008 08:56 Go to previous messageGo to next message
Freddy Allilaire is currently offline Freddy AllilaireFriend
Messages: 130
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------030401000706040501060408
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Hi Behnaz,

Maybe I miss something, but I couldn't see (from REO metamodel) how you
can create FIFO elements inside the "nodes" reference of a Connector
element. FIFO doesn't extend Node class.

Regards,
Freddy.

Behnaz a
Re: ATL: Problem with Nesting rule [message #94845 is a reply to message #93130] Mon, 10 November 2008 10:37 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

Hi Freddy,
Thanks for your helps. If you remember I had problem with nesting
sourceend and sinkend attributes of directedchannel as you said changing
the containment attribute to true resolved that problem. Not I have same
problem with channels:SyncDrain when there is no containment attribute
the result is like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:channels="http://www.cwi.nl/reo/channels"
xmlns:cwi.reo="http://www.cwi.nl/reo"
xsi:schemaLocation="http://www.cwi.nl/reo/channels
platform:/resource/test/reo.ecore#//channels http://www.cwi.nl/reo
platform:/resource/test/reo.ecore">
<cwi.reo:Module xmi:id="_hgxUUK8SEd2XZ4l6H-FGVg">
<connectors xmi:type="cwi.reo:Connector"
xmi:id="_hgx7YK8SEd2XZ4l6H-FGVg" name="p">
<nodes xmi:type="cwi.reo:Node" xmi:id="_hgzJgK8SEd2XZ4l6H-FGVg"
name="OclUndefined * Task" sourceEnds="_hgyicq8SEd2XZ4l6H-FGVg"/>
<nodes xmi:type="cwi.reo:Node" xmi:id="_hgzJga8SEd2XZ4l6H-FGVg"
name="d * Task" sourceEnds="_hgyica8SEd2XZ4l6H-FGVg"/>
<nodes xmi:type="cwi.reo:Node" xmi:id="_hgzwkK8SEd2XZ4l6H-FGVg"
name="inspiration"/>
<primitives xmi:type="channels:SyncDrain"
xmi:id="_hgyicK8SEd2XZ4l6H-FGVg"/>
</connectors>
</cwi.reo:Module>
<cwi.reo:SourceEnd xmi:id="_hgyica8SEd2XZ4l6H-FGVg"
node="_hgzJga8SEd2XZ4l6H-FGVg"/>
<cwi.reo:SourceEnd xmi:id="_hgyicq8SEd2XZ4l6H-FGVg"
node="_hgzJgK8SEd2XZ4l6H-FGVg"/>
</xmi:XMI>

cwi.reo:SourceEnd and cwi.reo:SourceEnd should appear nested in
channels:SyncDrain.

Here is the ecore file without setting containment attribute:
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
<eClassifiers xsi:type="ecore:EClass" name="Module">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connector"
eSuperTypes="#//animation/AnimatableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
upperBound="-1"
eType="#//Node" containment="true" eOpposite="#//Node/connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
upperBound="-1"
eType="#//Primitive" containment="true"
eOpposite="#//Primitive/connector"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="subConnectors" upperBound="-1"
eType="#//Connector" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Component"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="properties"
upperBound="-1"
eType="#//Property" containment="true" eKeys="#//Property/key"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Node"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="getAllEnds" upperBound="-1"
eType="#//PrimitiveEnd"/>
<eOperations name="isSourceNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="isSinkNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="isMixedNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connector"
eType="#//Connector"
eOpposite="#//Connector/nodes"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
upperBound="-1"
eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
upperBound="-1"
eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="#//NodeType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Primitive"
abstract="true" eSuperTypes="#//animation/AnimatableElement">
<eOperations name="initializeEnds"/>
<eOperations name="disconnectEnds"/>
<eOperations name="isConnected" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="getName" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
upperBound="-1"
eType="#//SourceEnd" containment="true"
eOpposite="#//SourceEnd/primitive"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
upperBound="-1"
eType="#//SinkEnd" containment="true"
eOpposite="#//SinkEnd/primitive"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connector"
eType="#//Connector"
eOpposite="#//Connector/primitives"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
abstract="true">
<eOperations name="getNode" eType="#//Node"/>
<eOperations name="setNode">
<eParameters name="node" eType="#//Node"/>
</eOperations>
<eOperations name="getPrimitive" eType="#//Primitive"/>
<eOperations name="setPrimitive">
<eParameters name="primitive" eType="#//Primitive"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sourceEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sourceEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sinkEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sinkEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="NodeType">
<eLiterals name="REPLICATE" literal="replicate"/>
<eLiterals name="ROUTE" value="1" literal="route"/>
<eLiterals name="JOIN" value="2" literal="join"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Property">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Network"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="update"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component"/>
</eClassifiers>
<eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
nsPrefix="channels">
<eClassifiers xsi:type="ecore:EClass" name="Sync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="LossySync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="FIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="Filter"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="expression" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Transform"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="expression" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Timer"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="colouring"
nsURI="http://www.cwi.nl/reo/colouring" nsPrefix="colouring">
<eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
<eLiterals name="FLOW" literal="---"/>
<eLiterals name="NO_FLOW" value="1" literal="-!-"/>
<eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
<eLiterals name="NO_FLOW_REQUIRE_REASON" value="3" literal="-&lt;-"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Colouring">
<eOperations name="join" eType="#//colouring/Colouring">
<eParameters name="function" eType="#//colouring/Colouring"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="colours"
ordered="false"
upperBound="-1"
eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="nextColouringTable" eType="#//colouring/ColouringTable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parts"
ordered="false"
upperBound="-1" eType="#//colouring/Colouring" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
<eOperations name="join">
<eParameters name="table" eType="#//colouring/ColouringTable"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference"
name="colourings" upperBound="-1"
eType="#//colouring/Colouring" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Colourable"
abstract="true" interface="true">
<eOperations name="getColouringTable"
eType="#//colouring/ColouringTable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
abstract="true"
eSuperTypes="#//colouring/Colourable">
<eStructuralFeatures xsi:type="ecore:EReference"
name="colouringTable" eType="#//colouring/ColouringTable"
changeable="false" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass"
name="PrimitiveEndToColourMapEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EReference" name="key"
eType="#//PrimitiveEnd"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="#//colouring/FlowColour"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="primitives"
nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
<eClassifiers xsi:type="ecore:EClass" name="Channel"
abstract="true" eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference"
name="channelEndOne" eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="channelEndTwo" eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
eType="#//Node"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
eType="#//Node"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndOne" eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndTwo" eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndOne" eType="#//SinkEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndTwo" eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Reader"
eSuperTypes="#//primitives/IOOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer"
eSuperTypes="#//primitives/IOOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IOOperation"
abstract="true" eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="requestCount" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Replicator"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndOne" eType="#//SinkEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sinkEndTwo" eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Merger"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndOne" eType="#//SourceEnd"
volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndTwo" eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="animation"
nsURI="http://www.cwi.nl/reo/animation" nsPrefix="animation">
<eClassifiers xsi:type="ecore:EClass" name="Animatable"
abstract="true" interface="true"
eSuperTypes="#//colouring/Colourable">
<eOperations name="getAnimationTable"
eType="#//animation/AnimationTable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnimatableElement"
abstract="true"
eSuperTypes="#//colouring/ColourableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="delay"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Animation"
eSuperTypes="#//colouring/Colouring">
<eOperations name="merge" eType="#//animation/Animation">
<eParameters name="animation" eType="#//animation/Animation"/>
</eOperations>
<eOperations name="append" eType="#//animation/Animation">
<eParameters name="animation" eType="#//animation/Animation"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="steps"
upperBound="-1"
eType="#//animation/AnimationStep" containment="true"
eOpposite="#//animation/AnimationStep/animation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnimationTable"
eSuperTypes="#//colouring/ColouringTable"/>
<eClassifiers xsi:type="ecore:EClass" name="AnimationStep"
abstract="true">
<eStructuralFeatures xsi:type="ecore:EReference"
name="activeEnds" upperBound="-1"
eType="#//PrimitiveEnd"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="animation"
eType="#//animation/Animation"
eOpposite="#//animation/Animation/steps"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="SendTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="ReceiveTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="ReplicateTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="DestroyTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
</eSubpackages>
<eSubpackages name="components"
nsURI="http://www.cwi.nl/reo/components" nsPrefix="components">
<eClassifiers xsi:type="ecore:EClass" name="Reader"
eSuperTypes="#//components/SingleEndComponent">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer"
eSuperTypes="#//components/SingleEndComponent">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleEndComponent"
abstract="true"
eSuperTypes="#//Component">
<eStructuralFeatures xsi:type="ecore:EReference" name="end"
eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="requests"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
volatile="true" transient="true" defaultValueLiteral="1"/>
</eClassifiers>
</eSubpackages>
</ecore:EPackage>





When I change the ecore file as below:
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
<eClassifiers xsi:type="ecore:EClass" name="Module">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connector"
eSuperTypes="#//animation/AnimatableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
upperBound="-1"
eType="#//Node" containment="true" eOpposite="#//Node/connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
upperBound="-1"
eType="#//Primitive" containment="true"
eOpposite="#//Primitive/connector"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="subConnectors" upperBound="-1"
eType="#//Connector" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Component"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="properties"
upperBound="-1"
eType="#//Property" containment="true" eKeys="#//Property/key"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Node"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="getAllEnds" upperBound="-1" eType="#//PrimitiveEnd"/>
<eOperations name="isSourceNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="isSinkNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="isMixedNode" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connector"
eType="#//Connector"
eOpposite="#//Connector/nodes"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
upperBound="-1"
eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
upperBound="-1"
eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="#//NodeType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Primitive" abstract="true"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="initializeEnds"/>
<eOperations name="disconnectEnds"/>
<eOperations name="isConnected" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="getName" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
upperBound="-1"
eType="#//SourceEnd" containment="true"
eOpposite="#//SourceEnd/primitive"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
upperBound="-1"
eType="#//SinkEnd" containment="true"
eOpposite="#//SinkEnd/primitive"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connector"
eType="#//Connector"
eOpposite="#//Connector/primitives"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd" abstract="true">
<eOperations name="getNode" eType="#//Node"/>
<eOperations name="setNode">
<eParameters name="node" eType="#//Node"/>
</eOperations>
<eOperations name="getPrimitive" eType="#//Primitive"/>
<eOperations name="setPrimitive">
<eParameters name="primitive" eType="#//Primitive"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sourceEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sourceEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
eSuperTypes="#//PrimitiveEnd">
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node" eOpposite="#//Node/sinkEnds"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
eType="#//Primitive"
eOpposite="#//Primitive/sinkEnds"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="NodeType">
<eLiterals name="REPLICATE" literal="replicate"/>
<eLiterals name="ROUTE" value="1" literal="route"/>
<eLiterals name="JOIN" value="2" literal="join"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Property">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Network"
eSuperTypes="#//animation/AnimatableElement">
<eOperations name="update"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
upperBound="-1"
eType="#//Connector"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="components"
upperBound="-1"
eType="#//Component"/>
</eClassifiers>
<eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
nsPrefix="channels">
<eClassifiers xsi:type="ecore:EClass" name="Sync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="LossySync"
eSuperTypes="#//primitives/DirectedChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="FIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
eSuperTypes="#//primitives/DrainChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
eSuperTypes="#//primitives/SpoutChannel"/>
<eClassifiers xsi:type="ecore:EClass" name="Filter"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="expression"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Transform"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="expression"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Timer"
eSuperTypes="#//primitives/DirectedChannel">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="colouring" nsURI="http://www.cwi.nl/reo/colouring"
nsPrefix="colouring">
<eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
<eLiterals name="FLOW" literal="---"/>
<eLiterals name="NO_FLOW" value="1" literal="-!-"/>
<eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
<eLiterals name="NO_FLOW_REQUIRE_REASON" value="3" literal="-&lt;-"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Colouring">
<eOperations name="join" eType="#//colouring/Colouring">
<eParameters name="function" eType="#//colouring/Colouring"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="colours"
ordered="false"
upperBound="-1"
eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="nextColouringTable" eType="#//colouring/ColouringTable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parts"
ordered="false"
upperBound="-1" eType="#//colouring/Colouring" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
<eOperations name="join">
<eParameters name="table" eType="#//colouring/ColouringTable"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="colourings"
upperBound="-1"
eType="#//colouring/Colouring" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Colourable"
abstract="true" interface="true">
<eOperations name="getColouringTable"
eType="#//colouring/ColouringTable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
abstract="true"
eSuperTypes="#//colouring/Colourable">
<eStructuralFeatures xsi:type="ecore:EReference"
name="colouringTable" eType="#//colouring/ColouringTable"
changeable="false" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass"
name="PrimitiveEndToColourMapEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EReference" name="key"
eType="#//PrimitiveEnd"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
eType="#//colouring/FlowColour"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="primitives"
nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
<eClassifiers xsi:type="ecore:EClass" name="Channel" abstract="true"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference"
name="channelEndOne" eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="channelEndTwo" eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
eType="#//Node"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
eType="#//Node"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndOne" eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndTwo" eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
abstract="true" eSuperTypes="#//primitives/Channel">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndOne"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndTwo"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Reader"
eSuperTypes="#//primitives/IOOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer"
eSuperTypes="#//primitives/IOOperation">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IOOperation"
abstract="true" eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="requestCount" eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
eType="#//PrimitiveEnd"
changeable="false" volatile="true" transient="true"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="node"
eType="#//Node"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Replicator"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndOne"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndTwo"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Merger"
eSuperTypes="#//Primitive">
<eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
eType="#//SinkEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndOne" eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="sourceEndTwo" eType="#//SourceEnd"
volatile="true" transient="true" containment="true"/>
</eClassifiers>
</eSubpackages>
<eSubpackages name="animation" nsURI="http://www.cwi.nl/reo/animation"
nsPrefix="animation">
<eClassifiers xsi:type="ecore:EClass" name="Animatable"
abstract="true" interface="true"
eSuperTypes="#//colouring/Colourable">
<eOperations name="getAnimationTable"
eType="#//animation/AnimationTable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnimatableElement"
abstract="true"
eSuperTypes="#//colouring/ColourableElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="delay"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Animation"
eSuperTypes="#//colouring/Colouring">
<eOperations name="merge" eType="#//animation/Animation">
<eParameters name="animation" eType="#//animation/Animation"/>
</eOperations>
<eOperations name="append" eType="#//animation/Animation">
<eParameters name="animation" eType="#//animation/Animation"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="steps"
upperBound="-1"
eType="#//animation/AnimationStep" containment="true"
eOpposite="#//animation/AnimationStep/animation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnimationTable"
eSuperTypes="#//colouring/ColouringTable"/>
<eClassifiers xsi:type="ecore:EClass" name="AnimationStep"
abstract="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="activeEnds"
upperBound="-1"
eType="#//PrimitiveEnd"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="animation"
eType="#//animation/Animation"
eOpposite="#//animation/Animation/steps"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="SendTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:EClass" name="ReceiveTokenStep"
eSuperTypes="#//animation/AnimationStep"/>
<eClassifiers xsi:type="ecore:E
Re: ATL: Problem with Nesting rule [message #94967 is a reply to message #94845] Mon, 10 November 2008 16:53 Go to previous message
Eclipse UserFriend
Originally posted by: behnaz.cwi.nl

Behnaz wrote:
> Hi Freddy,
> Thanks for your helps. If you remember I had problem with nesting
> sourceend and sinkend attributes of directedchannel as you said changing
> the containment attribute to true resolved that problem. Not I have same
> problem with channels:SyncDrain when there is no containment attribute
> the result is like this:
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:channels="http://www.cwi.nl/reo/channels"
> xmlns:cwi.reo="http://www.cwi.nl/reo"
> xsi:schemaLocation="http://www.cwi.nl/reo/channels
> platform:/resource/test/reo.ecore#//channels http://www.cwi.nl/reo
> platform:/resource/test/reo.ecore">
> <cwi.reo:Module xmi:id="_hgxUUK8SEd2XZ4l6H-FGVg">
> <connectors xmi:type="cwi.reo:Connector"
> xmi:id="_hgx7YK8SEd2XZ4l6H-FGVg" name="p">
> <nodes xmi:type="cwi.reo:Node" xmi:id="_hgzJgK8SEd2XZ4l6H-FGVg"
> name="OclUndefined * Task" sourceEnds="_hgyicq8SEd2XZ4l6H-FGVg"/>
> <nodes xmi:type="cwi.reo:Node" xmi:id="_hgzJga8SEd2XZ4l6H-FGVg"
> name="d * Task" sourceEnds="_hgyica8SEd2XZ4l6H-FGVg"/>
> <nodes xmi:type="cwi.reo:Node" xmi:id="_hgzwkK8SEd2XZ4l6H-FGVg"
> name="inspiration"/>
> <primitives xmi:type="channels:SyncDrain"
> xmi:id="_hgyicK8SEd2XZ4l6H-FGVg"/>
> </connectors>
> </cwi.reo:Module>
> <cwi.reo:SourceEnd xmi:id="_hgyica8SEd2XZ4l6H-FGVg"
> node="_hgzJga8SEd2XZ4l6H-FGVg"/>
> <cwi.reo:SourceEnd xmi:id="_hgyicq8SEd2XZ4l6H-FGVg"
> node="_hgzJgK8SEd2XZ4l6H-FGVg"/>
> </xmi:XMI>
>
> cwi.reo:SourceEnd and cwi.reo:SourceEnd should appear nested in
> channels:SyncDrain.
>
> Here is the ecore file without setting containment attribute:
> <?xml version="1.0" encoding="UTF-8"?>
> <ecore:EPackage xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
> nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
> <eClassifiers xsi:type="ecore:EClass" name="Module">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
> upperBound="-1"
> eType="#//Connector" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
> upperBound="-1"
> eType="#//Component" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Connector"
> eSuperTypes="#//animation/AnimatableElement">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
> derived="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
> upperBound="-1"
> eType="#//Node" containment="true" eOpposite="#//Node/connector"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
> upperBound="-1"
> eType="#//Primitive" containment="true"
> eOpposite="#//Primitive/connector"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="subConnectors" upperBound="-1"
> eType="#//Connector" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Component"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
> derived="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
> derived="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="properties"
> upperBound="-1"
> eType="#//Property" containment="true" eKeys="#//Property/key"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Node"
> eSuperTypes="#//animation/AnimatableElement">
> <eOperations name="getAllEnds" upperBound="-1"
> eType="#//PrimitiveEnd"/>
> <eOperations name="isSourceNode" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eOperations name="isSinkNode" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eOperations name="isMixedNode" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
> eType="#//Connector"
> eOpposite="#//Connector/nodes"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
> upperBound="-1"
> eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
> upperBound="-1"
> eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
> eType="#//NodeType"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Primitive" abstract="true"
> eSuperTypes="#//animation/AnimatableElement">
> <eOperations name="initializeEnds"/>
> <eOperations name="disconnectEnds"/>
> <eOperations name="isConnected" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eOperations name="getName" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
> upperBound="-1"
> eType="#//SourceEnd" containment="true"
> eOpposite="#//SourceEnd/primitive"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
> upperBound="-1"
> eType="#//SinkEnd" containment="true"
> eOpposite="#//SinkEnd/primitive"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
> eType="#//Connector"
> eOpposite="#//Connector/primitives"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd"
> abstract="true">
> <eOperations name="getNode" eType="#//Node"/>
> <eOperations name="setNode">
> <eParameters name="node" eType="#//Node"/>
> </eOperations>
> <eOperations name="getPrimitive" eType="#//Primitive"/>
> <eOperations name="setPrimitive">
> <eParameters name="primitive" eType="#//Primitive"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
> eSuperTypes="#//PrimitiveEnd">
> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
> eType="#//Node" eOpposite="#//Node/sourceEnds"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
> eType="#//Primitive"
> eOpposite="#//Primitive/sourceEnds"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
> eSuperTypes="#//PrimitiveEnd">
> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
> eType="#//Node" eOpposite="#//Node/sinkEnds"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
> eType="#//Primitive"
> eOpposite="#//Primitive/sinkEnds"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="NodeType">
> <eLiterals name="REPLICATE" literal="replicate"/>
> <eLiterals name="ROUTE" value="1" literal="route"/>
> <eLiterals name="JOIN" value="2" literal="join"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Property">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Network"
> eSuperTypes="#//animation/AnimatableElement">
> <eOperations name="update"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
> upperBound="-1"
> eType="#//Connector"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
> upperBound="-1"
> eType="#//Component"/>
> </eClassifiers>
> <eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
> nsPrefix="channels">
> <eClassifiers xsi:type="ecore:EClass" name="Sync"
> eSuperTypes="#//primitives/DirectedChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="LossySync"
> eSuperTypes="#//primitives/DirectedChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="FIFO"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
> eSuperTypes="#//primitives/DrainChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
> eSuperTypes="#//primitives/DrainChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
> eSuperTypes="#//primitives/SpoutChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
> eSuperTypes="#//primitives/SpoutChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="Filter"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Transform"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Timer"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="colouring" nsURI="http://www.cwi.nl/reo/colouring"
> nsPrefix="colouring">
> <eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
> <eLiterals name="FLOW" literal="---"/>
> <eLiterals name="NO_FLOW" value="1" literal="-!-"/>
> <eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
> <eLiterals name="NO_FLOW_REQUIRE_REASON" value="3" literal="-&lt;-"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Colouring">
> <eOperations name="join" eType="#//colouring/Colouring">
> <eParameters name="function" eType="#//colouring/Colouring"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EReference" name="colours"
> ordered="false"
> upperBound="-1"
> eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="nextColouringTable" eType="#//colouring/ColouringTable"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="parts"
> ordered="false"
> upperBound="-1" eType="#//colouring/Colouring" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
> <eOperations name="join">
> <eParameters name="table" eType="#//colouring/ColouringTable"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EReference" name="colourings"
> upperBound="-1"
> eType="#//colouring/Colouring" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
> defaultValueLiteral="3"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Colourable"
> abstract="true" interface="true">
> <eOperations name="getColouringTable"
> eType="#//colouring/ColouringTable"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
> abstract="true"
> eSuperTypes="#//colouring/Colourable">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="colouringTable" eType="#//colouring/ColouringTable"
> changeable="false" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass"
> name="PrimitiveEndToColourMapEntry"
> instanceClassName="java.util.Map$Entry">
> <eStructuralFeatures xsi:type="ecore:EReference" name="key"
> eType="#//PrimitiveEnd"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
> eType="#//colouring/FlowColour"/>
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="primitives"
> nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
> <eClassifiers xsi:type="ecore:EClass" name="Channel" abstract="true"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="channelEndOne" eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="channelEndTwo" eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
> eType="#//Node"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
> eType="#//Node"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
> abstract="true" eSuperTypes="#//primitives/Channel">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
> abstract="true" eSuperTypes="#//primitives/Channel">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndOne" eType="#//SourceEnd"
> volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndTwo" eType="#//SourceEnd"
> volatile="true" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
> abstract="true" eSuperTypes="#//primitives/Channel">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndOne"
> eType="#//SinkEnd"
> volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndTwo"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Reader"
> eSuperTypes="#//primitives/IOOperation">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Writer"
> eSuperTypes="#//primitives/IOOperation">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="IOOperation"
> abstract="true" eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EAttribute"
> name="requestCount" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EInt"
> defaultValueLiteral="1"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
> eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
> eType="#//Node"
> volatile="true" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Replicator"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndOne"
> eType="#//SinkEnd"
> volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndTwo"
> eType="#//SinkEnd"
> volatile="true" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Merger"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndOne" eType="#//SourceEnd"
> volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndTwo" eType="#//SourceEnd"
> volatile="true" transient="true"/>
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="animation" nsURI="http://www.cwi.nl/reo/animation"
> nsPrefix="animation">
> <eClassifiers xsi:type="ecore:EClass" name="Animatable"
> abstract="true" interface="true"
> eSuperTypes="#//colouring/Colourable">
> <eOperations name="getAnimationTable"
> eType="#//animation/AnimationTable"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="AnimatableElement"
> abstract="true"
> eSuperTypes="#//colouring/ColourableElement">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="delay"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Animation"
> eSuperTypes="#//colouring/Colouring">
> <eOperations name="merge" eType="#//animation/Animation">
> <eParameters name="animation" eType="#//animation/Animation"/>
> </eOperations>
> <eOperations name="append" eType="#//animation/Animation">
> <eParameters name="animation" eType="#//animation/Animation"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EReference" name="steps"
> upperBound="-1"
> eType="#//animation/AnimationStep" containment="true"
> eOpposite="#//animation/AnimationStep/animation"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="AnimationTable"
> eSuperTypes="#//colouring/ColouringTable"/>
> <eClassifiers xsi:type="ecore:EClass" name="AnimationStep"
> abstract="true">
> <eStructuralFeatures xsi:type="ecore:EReference" name="activeEnds"
> upperBound="-1"
> eType="#//PrimitiveEnd"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="animation"
> eType="#//animation/Animation"
> eOpposite="#//animation/Animation/steps"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="CreateTokenStep"
> eSuperTypes="#//animation/AnimationStep"/>
> <eClassifiers xsi:type="ecore:EClass" name="SendTokenStep"
> eSuperTypes="#//animation/AnimationStep"/>
> <eClassifiers xsi:type="ecore:EClass" name="ReceiveTokenStep"
> eSuperTypes="#//animation/AnimationStep"/>
> <eClassifiers xsi:type="ecore:EClass" name="ReplicateTokenStep"
> eSuperTypes="#//animation/AnimationStep"/>
> <eClassifiers xsi:type="ecore:EClass" name="DestroyTokenStep"
> eSuperTypes="#//animation/AnimationStep"/>
> </eSubpackages>
> <eSubpackages name="components"
> nsURI="http://www.cwi.nl/reo/components" nsPrefix="components">
> <eClassifiers xsi:type="ecore:EClass" name="Reader"
> eSuperTypes="#//components/SingleEndComponent">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Writer"
> eSuperTypes="#//components/SingleEndComponent">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> volatile="true" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SingleEndComponent"
> abstract="true"
> eSuperTypes="#//Component">
> <eStructuralFeatures xsi:type="ecore:EReference" name="end"
> eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="requests"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
> volatile="true" transient="true" defaultValueLiteral="1"/>
> </eClassifiers>
> </eSubpackages>
> </ecore:EPackage>
>
>
>
>
>
> When I change the ecore file as below:
> <?xml version="1.0" encoding="UTF-8"?>
> <ecore:EPackage xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="reo"
> nsURI="http://www.cwi.nl/reo" nsPrefix="cwi.reo">
> <eClassifiers xsi:type="ecore:EClass" name="Module">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
> upperBound="-1"
> eType="#//Connector" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
> upperBound="-1"
> eType="#//Component" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Connector"
> eSuperTypes="#//animation/AnimatableElement">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
> derived="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodes"
> upperBound="-1"
> eType="#//Node" containment="true" eOpposite="#//Node/connector"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="primitives"
> upperBound="-1"
> eType="#//Primitive" containment="true"
> eOpposite="#//Primitive/connector"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="subConnectors"
> upperBound="-1"
> eType="#//Connector" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Component"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
> derived="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="package"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
> derived="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="properties"
> upperBound="-1"
> eType="#//Property" containment="true" eKeys="#//Property/key"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Node"
> eSuperTypes="#//animation/AnimatableElement">
> <eOperations name="getAllEnds" upperBound="-1" eType="#//PrimitiveEnd"/>
> <eOperations name="isSourceNode" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eOperations name="isSinkNode" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eOperations name="isMixedNode" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
> eType="#//Connector"
> eOpposite="#//Connector/nodes"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
> upperBound="-1"
> eType="#//SourceEnd" eOpposite="#//SourceEnd/node"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
> upperBound="-1"
> eType="#//SinkEnd" eOpposite="#//SinkEnd/node"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
> eType="#//NodeType"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Primitive" abstract="true"
> eSuperTypes="#//animation/AnimatableElement">
> <eOperations name="initializeEnds"/>
> <eOperations name="disconnectEnds"/>
> <eOperations name="isConnected" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eOperations name="getName" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnds"
> upperBound="-1"
> eType="#//SourceEnd" containment="true"
> eOpposite="#//SourceEnd/primitive"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnds"
> upperBound="-1"
> eType="#//SinkEnd" containment="true"
> eOpposite="#//SinkEnd/primitive"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connector"
> eType="#//Connector"
> eOpposite="#//Connector/primitives"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveEnd" abstract="true">
> <eOperations name="getNode" eType="#//Node"/>
> <eOperations name="setNode">
> <eParameters name="node" eType="#//Node"/>
> </eOperations>
> <eOperations name="getPrimitive" eType="#//Primitive"/>
> <eOperations name="setPrimitive">
> <eParameters name="primitive" eType="#//Primitive"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SourceEnd"
> eSuperTypes="#//PrimitiveEnd">
> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
> eType="#//Node" eOpposite="#//Node/sourceEnds"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
> eType="#//Primitive"
> eOpposite="#//Primitive/sourceEnds"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SinkEnd"
> eSuperTypes="#//PrimitiveEnd">
> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
> eType="#//Node" eOpposite="#//Node/sinkEnds"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="primitive"
> eType="#//Primitive"
> eOpposite="#//Primitive/sinkEnds"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EEnum" name="NodeType">
> <eLiterals name="REPLICATE" literal="replicate"/>
> <eLiterals name="ROUTE" value="1" literal="route"/>
> <eLiterals name="JOIN" value="2" literal="join"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Property">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="type"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Network"
> eSuperTypes="#//animation/AnimatableElement">
> <eOperations name="update"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="connectors"
> upperBound="-1"
> eType="#//Connector"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="components"
> upperBound="-1"
> eType="#//Component"/>
> </eClassifiers>
> <eSubpackages name="channels" nsURI="http://www.cwi.nl/reo/channels"
> nsPrefix="channels">
> <eClassifiers xsi:type="ecore:EClass" name="Sync"
> eSuperTypes="#//primitives/DirectedChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="LossySync"
> eSuperTypes="#//primitives/DirectedChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="FIFO"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="LossyFIFO"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="shift"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="full"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SyncDrain"
> eSuperTypes="#//primitives/DrainChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="AsyncDrain"
> eSuperTypes="#//primitives/DrainChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="SyncSpout"
> eSuperTypes="#//primitives/SpoutChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="AsyncSpout"
> eSuperTypes="#//primitives/SpoutChannel"/>
> <eClassifiers xsi:type="ecore:EClass" name="Filter"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Transform"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Timer"
> eSuperTypes="#//primitives/DirectedChannel">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeout"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="colouring" nsURI="http://www.cwi.nl/reo/colouring"
> nsPrefix="colouring">
> <eClassifiers xsi:type="ecore:EEnum" name="FlowColour">
> <eLiterals name="FLOW" literal="---"/>
> <eLiterals name="NO_FLOW" value="1" literal="-!-"/>
> <eLiterals name="NO_FLOW_GIVE_REASON" value="2" literal="->-"/>
> <eLiterals name="NO_FLOW_REQUIRE_REASON" value="3" literal="-&lt;-"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Colouring">
> <eOperations name="join" eType="#//colouring/Colouring">
> <eParameters name="function" eType="#//colouring/Colouring"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EReference" name="colours"
> ordered="false"
> upperBound="-1"
> eType="#//colouring/PrimitiveEndToColourMapEntry" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="nextColouringTable" eType="#//colouring/ColouringTable"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="parts"
> ordered="false"
> upperBound="-1" eType="#//colouring/Colouring" transient="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="ColouringTable">
> <eOperations name="join">
> <eParameters name="table" eType="#//colouring/ColouringTable"/>
> </eOperations>
> <eStructuralFeatures xsi:type="ecore:EReference" name="colourings"
> upperBound="-1"
> eType="#//colouring/Colouring" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="colours"
> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
> defaultValueLiteral="3"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Colourable"
> abstract="true" interface="true">
> <eOperations name="getColouringTable"
> eType="#//colouring/ColouringTable"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="ColourableElement"
> abstract="true"
> eSuperTypes="#//colouring/Colourable">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="colouringTable" eType="#//colouring/ColouringTable"
> changeable="false" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass"
> name="PrimitiveEndToColourMapEntry"
> instanceClassName="java.util.Map$Entry">
> <eStructuralFeatures xsi:type="ecore:EReference" name="key"
> eType="#//PrimitiveEnd"/>
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"
> eType="#//colouring/FlowColour"/>
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="primitives"
> nsURI="http://www.cwi.nl/reo/primitives" nsPrefix="primitives">
> <eClassifiers xsi:type="ecore:EClass" name="Channel" abstract="true"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="channelEndOne" eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="channelEndTwo" eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeOne"
> eType="#//Node"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="nodeTwo"
> eType="#//Node"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="DirectedChannel"
> abstract="true" eSuperTypes="#//primitives/Channel">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="DrainChannel"
> abstract="true" eSuperTypes="#//primitives/Channel">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndOne" eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndTwo" eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="SpoutChannel"
> abstract="true" eSuperTypes="#//primitives/Channel">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndOne"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndTwo"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Reader"
> eSuperTypes="#//primitives/IOOperation">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Writer"
> eSuperTypes="#//primitives/IOOperation">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="IOOperation"
> abstract="true" eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EAttribute"
> name="requestCount" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EInt"
> defaultValueLiteral="1"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="iOEnd"
> eType="#//PrimitiveEnd"
> changeable="false" volatile="true" transient="true"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="node"
> eType="#//Node"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Replicator"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd"
> eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndOne"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEndTwo"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="Merger"
> eSuperTypes="#//Primitive">
> <eStructuralFeatures xsi:type="ecore:EReference" name="sinkEnd"
> eType="#//SinkEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndOne" eType="#//SourceEnd"
> volatile="true" transient="true" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="sourceEndTwo" eType="#//Source
Previous Topic:[ATL] SEVERE: The 'no null' constraint is violated
Next Topic:Thanks so much!
Goto Forum:
  


Current Time: Thu Apr 25 04:59:53 GMT 2024

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

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

Back to the top