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 |
Eclipse User |
|
|
|
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 #92872 is a reply to message #92822] |
Tue, 21 October 2008 11:26 |
Eclipse User |
|
|
|
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 #92912 is a reply to message #92889] |
Tue, 21 October 2008 13:11 |
Eclipse User |
|
|
|
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="-<-"/>
</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 #93040 is a reply to message #93019] |
Wed, 22 October 2008 09:02 |
Eclipse User |
|
|
|
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="-<-"/>
>> </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 |
Eclipse User |
|
|
|
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="-<-"/>
>> </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 #94845 is a reply to message #93130] |
Mon, 10 November 2008 10:37 |
Eclipse User |
|
|
|
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="-<-"/>
</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="-<-"/>
</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 |
Eclipse User |
|
|
|
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="-<-"/>
> </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="-<-"/>
> </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
|
|
|
Goto Forum:
Current Time: Thu Apr 25 04:59:53 GMT 2024
Powered by FUDForum. Page generated in 0.04356 seconds
|