Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore')
-rw-r--r--plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore2806
1 files changed, 1403 insertions, 1403 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore
index b361c911f..4703d7db5 100644
--- a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore
@@ -1,1403 +1,1403 @@
-<?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="room" nsURI="http://www.eclipse.org/etrice/Room" nsPrefix="room">
- <eClassifiers xsi:type="ecore:EClass" name="RoomModel">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The root object for the ROOM model. It gives access to {@link Import imports} and&#xD;&#xA;the {@link SubSystemClass sub system},&#xD;&#xA;{@link ActorClass actor}, {@link ProtocolClass protocol} and&#xD;&#xA;{@link DataClass data} classes defined.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The model name is a dot separated fully qualified name and is&#xD;&#xA;used to provide a name space. The generators may use that also&#xD;&#xA;to place the generated code into separate directories.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
- eType="#//Import" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all imported models.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="primitiveTypes" upperBound="-1"
- eType="#//PrimitiveType" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all primitive types defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="externalTypes" upperBound="-1"
- eType="#//ExternalType" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all external types defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="dataClasses" upperBound="-1"
- eType="#//DataClass" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all data classes defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocolClasses" upperBound="-1"
- eType="#//GeneralProtocolClass" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all protocol classes defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actorClasses" upperBound="-1"
- eType="#//ActorClass" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all actor classes defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subSystemClasses" upperBound="-1"
- eType="#//SubSystemClass" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all sub system classes defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
- eType="#//LogicalSystem" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all logical systems defined by this model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RoomClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This class is the super class of all classes&#xD;&#xA;of the ROOM class model:&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link DataType}&lt;/li>&#xD;&#xA; &lt;li>{@link GeneralProtocolClass}&lt;/li>&#xD;&#xA; &lt;li>{@link StructureClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the actor class is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StructureClass" eSuperTypes="#//RoomClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This class is the super class of the structural classes&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link ActorContainerClass}&lt;/li>&#xD;&#xA; &lt;li>{@link LogicalSystem}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
- eType="#//Annotation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of structure class annotations.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
- eType="#//Binding" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of structure class bindings.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
- eType="#//LayerConnection" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of structure class connections.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActorContainerClass" eSuperTypes="#//StructureClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This class is the super class of the structural classes&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link ActorClass}&lt;/li>&#xD;&#xA; &lt;li>{@link SubSystemClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ifSPPs" upperBound="-1"
- eType="#//SPPRef" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all interface SPPs.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actorRefs" upperBound="-1"
- eType="#//ActorRef" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all actor refs.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="VarDecl">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A variable declaration consists of a name and a type.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the variable is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="refType" eType="#//RefableType"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the data type of the variable.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RefableType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a type with an optional reference attribute.&#xD;&#xA;If 'ref' is {@code true} then by reference semantic is chosen.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//DataType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the data type.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="ref" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If {@code true} then by reference semantics is chosen, by value semantics else.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="LiteralType">
- <eLiterals name="BOOL" literal="ptBoolean"/>
- <eLiterals name="INT" value="1" literal="ptInteger"/>
- <eLiterals name="REAL" value="2" literal="ptReal"/>
- <eLiterals name="CHAR" value="3" literal="ptCharacter"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//RoomClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link PrimitiveType}&lt;/li>&#xD;&#xA; &lt;li>{@link ComplexType}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ComplexType" eSuperTypes="#//DataType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link DataClass}&lt;/li>&#xD;&#xA; &lt;li>{@link ExternalType}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A primitive type describes a type like int, char, float&#xD;&#xA;and can represent the type with a certain precision&#xD;&#xA;in the target language&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//LiteralType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is one of the basic variable types.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the type name in the target language.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="castName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This (optional) name is used for casts to this type.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional default value literal.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExternalType" eSuperTypes="#//ComplexType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An external type is not defined in the ROOM model&#xD;&#xA;but only referenced. It can not be instantiated.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the type name in the target language.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional default value literal.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DataClass" eSuperTypes="#//ComplexType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Together with {@link ProtocolClass} and {@link ActorClass} one of&#xD;&#xA;the main class types of the ROOM language.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;In ROOM this is the equivalent to a class in Java or C++.&#xD;&#xA;A data class can be derived from a base class (single&#xD;&#xA;inheritance), has {@link Attribute}s and {@link Operation}s.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Additionally it can be annotated with generator specific&#xD;&#xA;meaning and user ocde can be added in several places&#xD;&#xA;(again generator specific).&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//DataClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The base class from which all attributes and operations are inherited.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
- eType="#//Annotation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of data class annotations.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
- eType="#//Attribute" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Attributes are the data members of the data class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1"
- eType="#//StandardOperation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Operations are the methods of the data class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Attribute">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An attribute is a named member of a&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link DataClass}&lt;/li>&#xD;&#xA; &lt;li>{@link ActorClass}&lt;/li>&#xD;&#xA; &lt;li>{@link PortClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;&lt;p>&#xD;&#xA;It can be of scalar or array type and is of a {@link RefableType}.&#xD;&#xA;It is possible to assign a default value literal.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The name of the attribute by which it is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The default is scalar ({@code size=1}), values {@code >1} indicate an array.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="refType" eType="#//RefableType"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the attribute's type.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional default value literal.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link StandardOperation}&lt;/li>&#xD;&#xA; &lt;li>{@link PortOperation}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The name of the operation by which it is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
- eType="#//VarDecl" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of arguments for the operation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="returntype" eType="#//RefableType"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional return type of the operation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the operation body written in code generator target language.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StandardOperation" eSuperTypes="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The standard form of an operation as used by&#xD;&#xA;{@link ActorClass} and {@link DataClass}.&#xD;&#xA;&lt;p>&#xD;&#xA;If the name coincides with it's containing classes name&#xD;&#xA;then it is a constructor (with void return type).&#xD;&#xA;If the name additionally is preceded by a tilde ~ then it&#xD;&#xA;is a destructor.&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;The operation has a list of {@link VarDecl} arguments, an&#xD;&#xA;optional return {@link RefableType} and a body (specified&#xD;&#xA;as {@link DetailCode}).&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="destructor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If this flag is {@code true} &lt;em>and&lt;/em> the name conincides with the class name&#xD;&#xA;it is treated as a destructor.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PortOperation" eSuperTypes="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The port operation is very similar to the {@link StandardOperation}&#xD;&#xA;and is used in the {@link PortClass}. It is not possible to&#xD;&#xA;define constructor or destructor.&#xD;&#xA;&lt;p>&#xD;&#xA;Optionally a {@link Message} can be specified which is sent&#xD;&#xA;when the method is invoked. For this reason these operations&#xD;&#xA;are also shown in the 'messages' dialog of the behavior editor.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="sendsMsg" eType="#//Message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This optional reference to a message means that the operation sends a message.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="CommunicationType">
- <eLiterals name="EVENT_DRIVEN" literal="eventdriven"/>
- <eLiterals name="DATA_DRIVEN" value="1" literal="datadriven"/>
- <eLiterals name="SYNCHRONOUS" value="2" literal="sync"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="GeneralProtocolClass" eSuperTypes="#//RoomClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link ProtocolClass}&lt;/li>&#xD;&#xA; &lt;li>{@link CompoundProtocolClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
- eType="#//Annotation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of protocol class annotations.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ProtocolClass" eSuperTypes="#//GeneralProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Together with {@link ActorClass} and {@link DataClass} one of&#xD;&#xA;the main class types of the ROOM language.&#xD;&#xA;&lt;p>&#xD;&#xA;A protocol class specifies a directed {@link Port} interface&#xD;&#xA;by two sets of {@link Message}s: incoming and outgoing.&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;A protocol class can derive from a base class (single inheritance).&#xD;&#xA;In this case it must only extend &lt;em>one&lt;/em> of the message sets:&#xD;&#xA;incoming &lt;em>or&lt;/em> outgoing.&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;Optionally {@link PortClass}es may be defined for regular and&#xD;&#xA;conjugate {@link Port}s. These classes can be used to add specific&#xD;&#xA;behavior e.g. by adding message handlers. This kind of felxibility&#xD;&#xA;can be used in particular for the efficient implementation of&#xD;&#xA;services (SAPs and SPPs).&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;Last not least a so called 'legal execution tree' can be specified&#xD;&#xA;using {@link ProtocolSemantics}.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="commType" eType="#//CommunicationType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the communication type of the protocol.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//ProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The base class from which all messages are inherited.&#xD;&#xA;The port classes and the semantics are not inherited.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="incomingMessages" upperBound="-1"
- eType="#//Message" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the set of incoming messages of this protocol.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingMessages" upperBound="-1"
- eType="#//Message" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the set of outgoing messages of this protocol.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="regular" eType="#//PortClass"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the optional regular port class specification.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="conjugate" eType="#//PortClass"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the optional conjugate port class specification.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="semantics" eType="#//ProtocolSemantics"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the optional semantics specification for this protocol.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CompoundProtocolClass" eSuperTypes="#//GeneralProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This special protocol class is used to bundle several protocols&#xD;&#xA;in relay ports. This can be useful to avoid parallel chains&#xD;&#xA;of {@link Binding}s traversing the structural hierarchy.&#xD;&#xA;&lt;p>&#xD;&#xA;The compound protocol class consists of several {@link SubProtocol}s.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subProtocols" upperBound="-1"
- eType="#//SubProtocol" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of sub protocols.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SubProtocol">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The sub protocol is part of the {@link CompoundProtocolClass} and defines&#xD;&#xA;kind of a named channel for messages. The sub protocols are used to associate an&#xD;&#xA;end port with a particular channel.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the sub protocols or channels are distinguished.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//GeneralProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the protocol of this channel.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A message in ROOM is part of a {@link ProtocolClass}. Messages are exchanged via {@link Port}s.&#xD;&#xA;For event driven protocols the message is an object that is deliverd using a message&#xD;&#xA;service of the runtime. For data driven systems only messages holding data are valid. In this&#xD;&#xA;case the conjugate port is the one holding (and writing) the data and the regular port is&#xD;&#xA;reading the data.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="priv" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If this flag is {@code true} then the message is treated as private for this protocol&#xD;&#xA;and can only be sent by a PortClass.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the message is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//VarDecl"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a reference to optional message data.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PortClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A port class can be specified to customize the behavior of a {@link ProtocolClass}.&#xD;&#xA;There can be one for regular ports and another one for conjugate ports independently.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Port classes can be used to define attributes and operations and message handlers&#xD;&#xA;(or interceptors).&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="userCode" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
- eType="#//Attribute" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of attributes of this nested class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1"
- eType="#//PortOperation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of operations of this nested class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="msgHandlers" upperBound="-1"
- eType="#//MessageHandler" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of message handlers.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MessageHandler">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link InMessageHandler}&lt;/li>&#xD;&#xA; &lt;li>{@link OutMessageHandler}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="msg" eType="#//Message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the message that is handled.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the handler code written in code generator target language.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InMessageHandler" eSuperTypes="#//MessageHandler">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Is a handler (or interceptor) for incoming messages. In the generated code the&#xD;&#xA;message is available. It is derived from {@link MsgHandler}.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OutMessageHandler" eSuperTypes="#//MessageHandler">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Is a handler (or interceptor) for outgoing messages. In the generated code the&#xD;&#xA;message is available. It is derived from {@link MsgHandler}.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ProtocolSemantics">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An optional semantics specification as part of a {@link ProtocolClass}.&#xD;&#xA;The semantic is defined as a &lt;em>legal execution tree&lt;/em>.&#xD;&#xA;This tree is composed of incoming and outgoing messages and each path through&#xD;&#xA;this tree is a valid sequence of messages exchanged through a port instance.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The semantics are composed using {@link SemanticsRule]s.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
- eType="#//SemanticsRule" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of semantic rules.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SemanticsRule">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link InSemanticsRule}&lt;/li>&#xD;&#xA; &lt;li>{@link OutSemanticsRule}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="msg" eType="#//Message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The message to which this rule applies.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="followUps" upperBound="-1"
- eType="#//SemanticsRule" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The possible follow up rules.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InSemanticsRule" eSuperTypes="#//SemanticsRule">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A {@link SemanticsRule} for incoming messages.&#xD;&#xA;The rule points to an incoming messages and allows follow-up rules.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OutSemanticsRule" eSuperTypes="#//SemanticsRule">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A {@link SemanticsRule} for outgoing messages.&#xD;&#xA;The rule points to an outgoing messages and allows follow-up rules.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ActorCommunicationType">
- <eLiterals name="EVENT_DRIVEN" literal="eventdriven"/>
- <eLiterals name="DATA_DRIVEN" value="1" literal="datadriven"/>
- <eLiterals name="ASYNCHRONOUS" value="2" literal="async"/>
- <eLiterals name="SYNCHRONOUS" value="3" literal="sync"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActorClass" eSuperTypes="#//ActorContainerClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Together with {@link ProtocolClass} and {@link DataClass} one of&#xD;&#xA;the main class types of the ROOM language.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The actor class in ROOM has three compartments which aren't represented as separate model objects.&#xD;&#xA;To understand to which compartment an attribute or reference belongs to here is a list&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>Interface: everything which is visible from the outside from a model point of view&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>{@link #getIfPorts}: a list of all interface {@link Port}s&lt;/li>&#xD;&#xA; &lt;li>{@link ActorContainerClass#getIfSPPs}: a list of all interface {@link SPPRef}s&lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA; &lt;li>Structure: all internal structural aspects of an actor class&lt;/li>&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>{@link #getUsercode1}-3: user defined code with generator dependent meaning&lt;/li>&#xD;&#xA; &lt;li>{@link #getIntPorts}: a list of all internal end {@link Port}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getExtPorts}: a list of all {@link ExternalPort}s (the interface ports that&#xD;&#xA; are end ports, not relay ports&lt;/li>&#xD;&#xA; &lt;li>{@link #getServiceImplementations}: a list of all {@link ServiceImplementation}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getStrSAPs}: a list of all {@link SAPRef}s used by this actor class&lt;/li>&#xD;&#xA; &lt;li>{@link #getAttributes}: a list of all actor class {@link Attribute}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getActorRefs}: a list of all referenced actor classes (an {@link ActorRef}&#xD;&#xA; has the meaning of a composition)&lt;/li>&#xD;&#xA; &lt;li>{@link #getBindings}: a list of all port {@link Binding}s of this actor class&lt;/li>&#xD;&#xA; &lt;li>{@link #getConnections}: a list of all {@link LayerConnections}&lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA; &lt;li>Behavior: the behavioral aspects of an actor class&lt;/li>&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>{@link #getOperations}: a list of {@link Operation}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getStateMachine}: the {@link StateMachine} definition&lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA;&lt;/ul>&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If {@code true} this actor class can not be instantiated and can only be base class&#xD;&#xA;for other actor classes.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="commType" eType="#//ActorCommunicationType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The communication type of this actor class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//ActorClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The base class from which all attributes, operations, ports, SAPs&#xD;&#xA;and state machine are inherited.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ifPorts" upperBound="-1"
- eType="#//Port" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list containing all ports of the actor interface.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="structureDocu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation of the actor structure.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="intPorts" upperBound="-1"
- eType="#//Port" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list containing all ports of the actor structure (internal end ports).&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extPorts" upperBound="-1"
- eType="#//ExternalPort" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list containing all ports of the actor interface that are end ports.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="serviceImplementations"
- upperBound="-1" eType="#//ServiceImplementation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all service implementations.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="strSAPs" upperBound="-1"
- eType="#//SAPRef" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all SAPs.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
- eType="#//Attribute" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all actor class private attributes.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorDocu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation of the actor behavior.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorAnnotations" upperBound="-1"
- eType="#//Annotation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of annotations to the actor behavior.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1"
- eType="#//StandardOperation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all private operations of this actor class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" eType="#//StateGraph"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the actor's optional state machine.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InterfaceItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link Port}&lt;/li>&#xD;&#xA; &lt;li>{@link SAPRef}&lt;/li>&#xD;&#xA; &lt;li>{@link SPPRef}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="getGeneralProtocol" eType="#//GeneralProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="body" value="if (this instanceof org.eclipse.etrice.core.room.Port)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.Port) this).getProtocol();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.SAPRef)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.SAPRef) this).getProtocol();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.SPPRef)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.SPPRef) this).getProtocol();&#xD;&#xA;return null;&#xD;&#xA;"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the interface item is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//InterfaceItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A port defines a part of the interface of an {@link ActorClass} in a specific role.&#xD;&#xA;The port is associated with a {@link ProtocolClass}. If it is conjugated then the&#xD;&#xA;roles of incoming and outgoing messages of the protocol are inverted.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Ports can have a multiplicity. If it is greater one the port is called replicated.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Whether a port is a relay port or not is a property that is derived from how it is&#xD;&#xA;referenced by its {@link ActorClass}:&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>ports contained in the actor structure are called &lt;em>internal end ports&lt;/em>&lt;/li>&#xD;&#xA; &lt;li>ports contained in the actor interface and are also referenced by an {@link ExternalPort}&#xD;&#xA; are called &lt;em>external end ports&lt;/em>&lt;/li>&#xD;&#xA; &lt;li>ports contained in the actor interface only are called &lt;em>relay ports&lt;/em>&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;Relay ports delegate to sub actors and end ports are connected to the actor's state machine.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;@see {@link org.eclipse.etrice.core.room.util.RoomHelpers#isRelay(Port) RoomHelpers.isRelay(Port)}&#xD;&#xA;@see {@link org.eclipse.etrice.core.room.util.RoomHelpers#isInternal(Port) RoomHelpers.isInternal(Port)}&#xD;&#xA;@see {@link org.eclipse.etrice.core.room.util.RoomHelpers#isExternal(Port) RoomHelpers.isExternal(Port)}&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="isReplicated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="body" value="return multiplicity>1 || multiplicity==-1;"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="conjugated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If a port is conjugated then the roles of outgoing and incoming messages are interchanged.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
- defaultValueLiteral="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Ports with multiplicity >1 are called relay ports. A multiplicity of {@code -1} means replicated&#xD;&#xA;port with arbitrary multiplicity.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//GeneralProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the port's protocol class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExternalPort">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An external port is part of the actor structure and references an interface port.&#xD;&#xA;An interface port which is referenced by an external port is an external end port.&#xD;&#xA;If it is not referenced it is a relay port.&#xD;&#xA;&#xD;&#xA;@see {@link Port}&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ifport" eType="#//Port">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced interface port of the actor class which is now an external end port.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SAPRef" eSuperTypes="#//InterfaceItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A service access point is similar to a {@link Port} but is not explicitly bound to a peer.&#xD;&#xA;Rather, it is bound to a {@link ServiceImplementation} which is connected to one of the&#xD;&#xA;containing actors.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;An SAP is associated with a {@link ProtocolClass} and is conjugate to this protocol.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the SAPRef's protocol class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SPPRef" eSuperTypes="#//InterfaceItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A service provision point is used to connect an actor class with a {@link ServiceImplementation}.&#xD;&#xA;It can (similar to relay ports) delegate to another actor class (using a {@link LayerConnection})&#xD;&#xA;or connect to a {@link ServiceImplementation} of its actor class.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;An SPP is associated with a {@link ProtocolClass} and is regular to this protocol.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the SAPRef's protocol class.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ServiceImplementation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A service implementation can be reagrded as the replicated peer port of all {@link SAPRef}s&#xD;&#xA;that are bound to it following the service resolution logic.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="spp" eType="#//SPPRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the SPP connected to the service.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LogicalSystem" eSuperTypes="#//StructureClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The top level structural class. It can only contain sub systems using {@link SubSystemRef}s.&#xD;&#xA;This way the logical system is composed of sub system instances. It also defines&#xD;&#xA;{@link Binding}s and {@link LayerConnection}s between those sub systems.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The logical system is the root of the instance tree of the generator model.&#xD;&#xA;Each {@link SubSystemRef} is turned into a {@link SubSystemInstance} and each&#xD;&#xA;{@link ActorRef} is turned into an {@link ActorInstance}.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subSystems" upperBound="-1"
- eType="#//SubSystemRef" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The list of all sub systems contained in the logical system.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActorContainerRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link SubSystemRef}&lt;/li>&#xD;&#xA; &lt;li>{@link ActorRef}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;The reference designates a specific role of the referenced structure class.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the actor container reference is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SubSystemRef" eSuperTypes="#//ActorContainerRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A means to compose {@link LogicalSystem}s of {@link SubSystemClass}es. Each ref will&#xD;&#xA;be turned into a sub system instance of the referenced type.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//SubSystemClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The type of the reference.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SubSystemClass" eSuperTypes="#//ActorContainerClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A sub system class corresponds to a process with a separate address space.&#xD;&#xA;It has no behavior of its own and is composed of {@link ActorClass}es.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Sub systems can be connected using {@link Port}s and {@link Binding}s.&#xD;&#xA;All ports of a sub system are relay ports.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Sub systems can define an arbitrary number of logical threads onto which their actor&#xD;&#xA;instances are mapped.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="relayPorts" upperBound="-1"
- eType="#//Port" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all relay ports of the sub system.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="threads" upperBound="-1"
- eType="#//LogicalThread" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all actor instance mappings of the sub system.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actorInstanceMappings"
- upperBound="-1" eType="#//ActorInstanceMapping" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of actor instance mappings.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LogicalThread">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A logical thread is addressed by the {@link ActorInstanceMapping}s of a {@link SubSystemClass}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the thread is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActorInstanceMapping">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An actor instance mapping maps an actor instances (described as a path of actor references)&#xD;&#xA;to a {@link LogicalThread}&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//RefPath"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the path of references starting at this sub system that uniquely references an actor instance.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="thread" eType="#//LogicalThread">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the logical thread to which the referenced actor instance and all of its contained instances&#xD;&#xA;are mapped.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actorInstanceMappings"
- upperBound="-1" eType="#//ActorInstanceMapping" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of nested mappings which override parent mappings.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RefPath">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A path of strings that are interpreted as {@link ActorRef}s starting at a {@link SubSystemClass}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="refs" unique="false" upperBound="-1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a path in the instance tree where each segment corresponds to the name of the&#xD;&#xA;corresponding {@link ActorContainerRef}.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Binding">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A binding connects two {@link Port}s.&#xD;&#xA;To be able to distinguish the ports of two {@link ActorContainerRef}s of the same type&#xD;&#xA;a {@link BindingEndPoint} is needed for disambiguation.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="endpoint1" eType="#//BindingEndPoint"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The first end point of a binding.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="endpoint2" eType="#//BindingEndPoint"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The second end point of a binding.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="BindingEndPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A binding end point is a pair of an {@link ActorContainerRef} and a {@link Port} and is used&#xD;&#xA;to uniquely describe a port of a sub actor. If the actor container ref is {@code null} then&#xD;&#xA;a port of the actor class itself is addressed.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actorRef" eType="#//ActorContainerRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The actor reference holding the bound port or {@code null} in case of a local port.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the bound port.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="sub" eType="#//SubProtocol">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the bound sub protocol or {@code null} if not applicable.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LayerConnection">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Layer connections are used to connect {@link SAPRef}s and {@link ServiceImplementation}s.&#xD;&#xA;The source is described by a {@link SAPoint} and the target by a {@link SPPoint}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//SAPoint"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is source point of the layer connection.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//SPPoint"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is target point of the layer connection.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SAPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link RefSAPoint}&lt;/li>&#xD;&#xA; &lt;li>{@link RelaySAPoint}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RefSAPoint" eSuperTypes="#//SAPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Links from a {@link ActorContainerRef}, i.e. from a sub actor.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ActorContainerRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced actor container ref.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelaySAPoint" eSuperTypes="#//SAPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Links from a relay {@link SPPRef} of the actor class.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="relay" eType="#//SPPRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced SPPRef.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SPPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Links to a {@link SPPRef} of an {@link ActorContainerRef}, i.e. an SPPRef of a sub actor&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ActorContainerRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced actor container ref.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="service" eType="#//SPPRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced service.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActorRef" eSuperTypes="#//ActorContainerRef">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A means to compose {@link SubSystemClass}es of {@link ActorClass}es. Each ref will&#xD;&#xA;be turned into an actor instance of the referenced type.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
- defaultValueLiteral="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If the size is >1 then this is a replicated actor.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//ActorClass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the type (i.e. actor class) of the actor ref.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StateGraphNode" eSuperTypes="#//StateGraphItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link State}&lt;/li>&#xD;&#xA; &lt;li>{@link ChoicePoint}&lt;/li>&#xD;&#xA; &lt;li>{@link TrPoint}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StateGraphItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link StateStateGraphNode}&lt;/li>&#xD;&#xA; &lt;li>{@link Transition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="body" value="if (this instanceof org.eclipse.etrice.core.room.State) &#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.State)this).getName();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.TrPoint)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.TrPoint)this).getName();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.ChoicePoint)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.ChoicePoint)this).getName();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.Transition)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.Transition)this).getName();&#xD;&#xA;return &quot;&quot;;&#xD;&#xA;"/>
- </eAnnotations>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//StateGraphNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link SimpleState}&lt;/li>&#xD;&#xA; &lt;li>{@link RefinedState}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="body" value="return (this instanceof org.eclipse.etrice.core.room.SimpleState)? ((org.eclipse.etrice.core.room.SimpleState)this).getName() :(this instanceof org.eclipse.etrice.core.room.RefinedState)? (((org.eclipse.etrice.core.room.RefinedState)this).getTarget()==null? &quot;&quot;:((org.eclipse.etrice.core.room.RefinedState)this).getTarget().getName()) :&quot;&quot;;"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="entryCode" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional entry code written in the code generator's target language.&#xD;&#xA;It is executed when the state is entered.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="exitCode" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional entry code written in the code generator's target language.&#xD;&#xA;It is executed when the state is left.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="doCode" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional do code written in the code generator's target language.&#xD;&#xA;It is executed whenever the actor instance is polled (applies only to&#xD;&#xA;data driven and sync actor classes).&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subgraph" eType="#//StateGraph"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional sub state graph of this state.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StateGraph">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A state graph is a directed graph composed of&#xD;&#xA;{@link StateGraphNode}s as nodes and {@link Transitions} as edges.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
- eType="#//State" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all states of this state graph.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="trPoints" upperBound="-1"
- eType="#//TrPoint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all transition, entry and exit points of this state graph.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="chPoints" upperBound="-1"
- eType="#//ChoicePoint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all choice points of this state graph.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
- eType="#//Transition" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all transitions of this state graph.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="refinedTransitions" upperBound="-1"
- eType="#//RefinedTransition" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all refined transitions of this state graph.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SimpleState" eSuperTypes="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A simple state is the standard case of a @link State}.&#xD;&#xA;It comprises and &lt;em>entry&lt;/em>, &lt;em>exit&lt;/em> and &lt;em>do&lt;/em> code&#xD;&#xA;and it can contain another {@link StateGRaph} as sub state&#xD;&#xA;graph.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the state is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RefinedState" eSuperTypes="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A refined state can be used only in a derived {@link ActorClass}.&#xD;&#xA;It refers to a {@link State} in the inherited state machine&#xD;&#xA;which is refined by adding detail code and/or&#xD;&#xA;{@link StateGRaphItem}s in the sub state graph.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced state in the base class state machine.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DetailCode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The detail code contains a list of strings which&#xD;&#xA;are considered verbatim code of the code generator&#xD;&#xA;target language.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The detail code is parsed by the {@link DetailCodeTranslator}&#xD;&#xA;which replaces certain frequent constructs like access of members&#xD;&#xA;and sending a message via a port by target language specific code.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="commands" unique="false"
- upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of commands in the code generator's target language.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TrPoint" eSuperTypes="#//StateGraphNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link TransitionPoint}&lt;/li>&#xD;&#xA; &lt;li>{@link EntryPoint}&lt;/li>&#xD;&#xA; &lt;li>{@link ExitPoint}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the transition, entry or exit point is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TransitionPoint" eSuperTypes="#//TrPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A transition point is located at the border of a {@link State}&#xD;&#xA;and is not visible or accessible outside. It is used&#xD;&#xA;to globally handle messages. If a {@link Transition} starting&#xD;&#xA;at a transition point triggers then exit and entry codes&#xD;&#xA;are executed as usual as long as the handler flag of the&#xD;&#xA;transition point isn't set.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="handler" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>If this flag is {@code true} then for a transition triggerd from this point&#xD;&#xA;no exit and entry codes of the states left and entered are executed.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="EntryPoint" eSuperTypes="#//TrPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An entry point is located at the border of a {@link State}&#xD;&#xA;and is visible and accessible outside. Outside&#xD;&#xA;it can be the target of a {@link Transition} and inside the source.&#xD;&#xA;If it is not connected in the interior then it is a&#xD;&#xA;&lt;em>transition to history&lt;/em>.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExitPoint" eSuperTypes="#//TrPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An exit point is located at the border of a {@link State}&#xD;&#xA;and is visible and accessible outside. Outside&#xD;&#xA;it can be the source of a {@link Transition} and inside the target.&#xD;&#xA;If it is not connected in the interior then it is a&#xD;&#xA;&lt;em>group transition&lt;/em>.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ChoicePoint" eSuperTypes="#//StateGraphNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A choice point corresponds to an {@code if else} construct.&#xD;&#xA;It is the target of one or more {@link Transition}s and the&#xD;&#xA;source of several {@link Transition}s.&#xD;&#xA;One outgoing transitions must be a {@link ContinuationTransition}&#xD;&#xA;and corresponds to the final else. It is called the&#xD;&#xA;&lt;em>default branch&lt;/em> of the choice point.&#xD;&#xA;All other outgoing transitions have to be {@link CPBranchTransition}s.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>By this name the choice point is referred to in the model.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//StateGraphItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link InitialTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link NonInitialTransition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional name of the transition.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//TransitionTerminal"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the target node of the transition.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="action" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional code in the code generator's target language.&#xD;&#xA;It is execute when the transition fires.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="NonInitialTransition" eSuperTypes="#//Transition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link TransitionChainStartTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link ContinuationTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link CPBranchTransition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//TransitionTerminal"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the source node of the transition.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TransitionChainStartTransition" eSuperTypes="#//NonInitialTransition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link TriggeredTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link GuardedTransition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InitialTransition" eSuperTypes="#//Transition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>There can be at most one initial transition in a {@link StateGraph}.&#xD;&#xA;It defines the starting point of the state graph and is traversed&#xD;&#xA;exactly once when the state graph is accessed for the first time.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ContinuationTransition" eSuperTypes="#//NonInitialTransition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Continuation transitions start at entry or exit points&#xD;&#xA;({@link EntryPoint}s or {@link ExitPoint}s) or form&#xD;&#xA;the default branch of a {@link ChoicePoint}.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TriggeredTransition" eSuperTypes="#//TransitionChainStartTransition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>Triggered transitions start at a {@link State} or a {@link TransitionPoint}.&#xD;&#xA;It defines a list of {@link Trigger}s that specify the conditions&#xD;&#xA;when the transition fires and is traversed. This kind of&#xD;&#xA;transition is only allowed in event driven and mixed (async) state&#xD;&#xA;machines.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="triggers" upperBound="-1"
- eType="#//Trigger" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of all triggers of the transition.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="GuardedTransition" eSuperTypes="#//TransitionChainStartTransition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A guarded transition is very similar to a {@link CPBranchTransition}.&#xD;&#xA;It defines a guard condition which lets the transition fire if&#xD;&#xA;evaluated to {@code true}. This kind of transition is only&#xD;&#xA;allowed in data driven or moixed (async) state machines.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the guard condition of the transition specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CPBranchTransition" eSuperTypes="#//NonInitialTransition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The choice point branch transitions is allowed only as outgoing&#xD;&#xA;transition of {@link ChoicePoint}s.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the condition of the choice point branch specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RefinedTransition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The refined transition is only allowed in {@link StateGraph}s&#xD;&#xA;of derived {@link ActorClass}es. It targets a {@link Transition}&#xD;&#xA;of the base class state machine.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//Transition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the referenced transition in the base class state machine.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="action" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional code in the code generator's target language.&#xD;&#xA;It is execute when the transition fires.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TransitionTerminal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link StateTerminal}&lt;/li>&#xD;&#xA; &lt;li>{@link TrPointTerminal}&lt;/li>&#xD;&#xA; &lt;li>{@link SubStateTrPointTerminal}&lt;/li>&#xD;&#xA; &lt;li>{@link ChoicepointTerminal}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StateTerminal" eSuperTypes="#//TransitionTerminal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a {@link State}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the target state.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TrPointTerminal" eSuperTypes="#//TransitionTerminal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a local {@link TrPoint}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="trPoint" eType="#//TrPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the target transition, entry or exit point.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SubStateTrPointTerminal" eSuperTypes="#//TransitionTerminal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a {@link TrPoint} of a sub {@link State}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="trPoint" eType="#//TrPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the target entry or exit point contained in the target state.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the target state.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ChoicepointTerminal" eSuperTypes="#//TransitionTerminal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a {@link ChoicepointTerminal}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="cp" eType="#//ChoicePoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the target choice point.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Trigger">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A transition trigger is a list of {@link MessageFromIf} pairs&#xD;&#xA;and an optional {@link Guard}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="msgFromIfPairs" upperBound="-1"
- eType="#//MessageFromIf" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of message/interface item pairs.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//Guard"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is an optional guard condition of the trigger specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MessageFromIf">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A pair consisting of a {@link Message} arising from an&#xD;&#xA;{@link InterfaceItem}.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="message" eType="#//Message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the triggerering message (or event).&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//InterfaceItem">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the interface item where the message occurred.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Guard">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A detail code that evaluates to a boolean in the target&#xD;&#xA;language.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//DetailCode"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a guard condition specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Documentation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A piece of documentation that can be optionally attached at&#xD;&#xA;certain places in the model.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" unique="false" upperBound="-1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the documentation's contents.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Annotation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>An annotation similar to Java annotations that can be used&#xD;&#xA;to add {@link KeyValue} pairs to certain model items.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the name of the annotation.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
- eType="#//KeyValue" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is a list of key/value pairs.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="KeyValue">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>A key/value pair.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the key of the pair.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>This is the value of the pair.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Import">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The import declares an imported model (given as a URI) and&#xD;&#xA;an optional imported namespace.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="importedNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The imported name space has to be a dot separated qualified name followed by .*.&#xD;&#xA;Example: my.namespace.*&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="importURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="&lt;br>The import URI can be a relative or absolute file system path.&#xD;&#xA;It may contain environment variables in ${} which will be expanded.&#xD;&#xA;&lt;p>&#xD;&#xA;Examples:&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>import model &quot;AnotherModel.room&quot;&lt;/li>&#xD;&#xA; &lt;li>import my.namespace.* from &quot;AnotherModel.room&quot;&lt;/li>&#xD;&#xA; &lt;li>import my.namespace.* from &quot;../../AnotherProject/models/AnotherModel.room&quot;&lt;/li>&#xD;&#xA; &lt;li>import my.namespace.* from &quot;/${ROOM_MODELS}/SomeModel.room&quot;&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
-</ecore:EPackage>
+<?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="room" nsURI="http://www.eclipse.org/etrice/Room" nsPrefix="room">
+ <eClassifiers xsi:type="ecore:EClass" name="RoomModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The root object for the ROOM model. It gives access to {@link Import imports} and&#xD;&#xA;the {@link SubSystemClass sub system},&#xD;&#xA;{@link ActorClass actor}, {@link ProtocolClass protocol} and&#xD;&#xA;{@link DataClass data} classes defined.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The model name is a dot separated fully qualified name and is&#xD;&#xA;used to provide a name space. The generators may use that also&#xD;&#xA;to place the generated code into separate directories.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
+ eType="#//Import" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all imported models.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="primitiveTypes" upperBound="-1"
+ eType="#//PrimitiveType" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all primitive types defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="externalTypes" upperBound="-1"
+ eType="#//ExternalType" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all external types defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="dataClasses" upperBound="-1"
+ eType="#//DataClass" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all data classes defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocolClasses" upperBound="-1"
+ eType="#//GeneralProtocolClass" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all protocol classes defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorClasses" upperBound="-1"
+ eType="#//ActorClass" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all actor classes defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subSystemClasses" upperBound="-1"
+ eType="#//SubSystemClass" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all sub system classes defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
+ eType="#//LogicalSystem" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all logical systems defined by this model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RoomClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This class is the super class of all classes&#xD;&#xA;of the ROOM class model:&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link DataType}&lt;/li>&#xD;&#xA; &lt;li>{@link GeneralProtocolClass}&lt;/li>&#xD;&#xA; &lt;li>{@link StructureClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the actor class is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StructureClass" eSuperTypes="#//RoomClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This class is the super class of the structural classes&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link ActorContainerClass}&lt;/li>&#xD;&#xA; &lt;li>{@link LogicalSystem}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+ eType="#//Annotation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of structure class annotations.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
+ eType="#//Binding" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of structure class bindings.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
+ eType="#//LayerConnection" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of structure class connections.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActorContainerClass" eSuperTypes="#//StructureClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This class is the super class of the structural classes&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link ActorClass}&lt;/li>&#xD;&#xA; &lt;li>{@link SubSystemClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ifSPPs" upperBound="-1"
+ eType="#//SPPRef" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all interface SPPs.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorRefs" upperBound="-1"
+ eType="#//ActorRef" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all actor refs.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VarDecl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A variable declaration consists of a name and a type.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the variable is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refType" eType="#//RefableType"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the data type of the variable.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RefableType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a type with an optional reference attribute.&#xD;&#xA;If 'ref' is {@code true} then by reference semantic is chosen.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//DataType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the data type.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="ref" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If {@code true} then by reference semantics is chosen, by value semantics else.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LiteralType">
+ <eLiterals name="BOOL" literal="ptBoolean"/>
+ <eLiterals name="INT" value="1" literal="ptInteger"/>
+ <eLiterals name="REAL" value="2" literal="ptReal"/>
+ <eLiterals name="CHAR" value="3" literal="ptCharacter"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//RoomClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link PrimitiveType}&lt;/li>&#xD;&#xA; &lt;li>{@link ComplexType}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComplexType" eSuperTypes="#//DataType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link DataClass}&lt;/li>&#xD;&#xA; &lt;li>{@link ExternalType}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A primitive type describes a type like int, char, float&#xD;&#xA;and can represent the type with a certain precision&#xD;&#xA;in the target language&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//LiteralType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is one of the basic variable types.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the type name in the target language.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="castName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This (optional) name is used for casts to this type.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional default value literal.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExternalType" eSuperTypes="#//ComplexType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An external type is not defined in the ROOM model&#xD;&#xA;but only referenced. It can not be instantiated.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the type name in the target language.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional default value literal.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataClass" eSuperTypes="#//ComplexType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Together with {@link ProtocolClass} and {@link ActorClass} one of&#xD;&#xA;the main class types of the ROOM language.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;In ROOM this is the equivalent to a class in Java or C++.&#xD;&#xA;A data class can be derived from a base class (single&#xD;&#xA;inheritance), has {@link Attribute}s and {@link Operation}s.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Additionally it can be annotated with generator specific&#xD;&#xA;meaning and user ocde can be added in several places&#xD;&#xA;(again generator specific).&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//DataClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The base class from which all attributes and operations are inherited.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+ eType="#//Annotation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of data class annotations.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attribute" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Attributes are the data members of the data class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1"
+ eType="#//StandardOperation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Operations are the methods of the data class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attribute">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An attribute is a named member of a&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link DataClass}&lt;/li>&#xD;&#xA; &lt;li>{@link ActorClass}&lt;/li>&#xD;&#xA; &lt;li>{@link PortClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;&lt;p>&#xD;&#xA;It can be of scalar or array type and is of a {@link RefableType}.&#xD;&#xA;It is possible to assign a default value literal.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The name of the attribute by which it is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The default is scalar ({@code size=1}), values {@code >1} indicate an array.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refType" eType="#//RefableType"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the attribute's type.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional default value literal.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link StandardOperation}&lt;/li>&#xD;&#xA; &lt;li>{@link PortOperation}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The name of the operation by which it is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
+ eType="#//VarDecl" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of arguments for the operation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="returntype" eType="#//RefableType"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional return type of the operation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the operation body written in code generator target language.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StandardOperation" eSuperTypes="#//Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The standard form of an operation as used by&#xD;&#xA;{@link ActorClass} and {@link DataClass}.&#xD;&#xA;&lt;p>&#xD;&#xA;If the name coincides with it's containing classes name&#xD;&#xA;then it is a constructor (with void return type).&#xD;&#xA;If the name additionally is preceded by a tilde ~ then it&#xD;&#xA;is a destructor.&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;The operation has a list of {@link VarDecl} arguments, an&#xD;&#xA;optional return {@link RefableType} and a body (specified&#xD;&#xA;as {@link DetailCode}).&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="destructor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If this flag is {@code true} &lt;em>and&lt;/em> the name conincides with the class name&#xD;&#xA;it is treated as a destructor.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PortOperation" eSuperTypes="#//Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The port operation is very similar to the {@link StandardOperation}&#xD;&#xA;and is used in the {@link PortClass}. It is not possible to&#xD;&#xA;define constructor or destructor.&#xD;&#xA;&lt;p>&#xD;&#xA;Optionally a {@link Message} can be specified which is sent&#xD;&#xA;when the method is invoked. For this reason these operations&#xD;&#xA;are also shown in the 'messages' dialog of the behavior editor.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendsMsg" eType="#//Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This optional reference to a message means that the operation sends a message.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CommunicationType">
+ <eLiterals name="EVENT_DRIVEN" literal="eventdriven"/>
+ <eLiterals name="DATA_DRIVEN" value="1" literal="datadriven"/>
+ <eLiterals name="SYNCHRONOUS" value="2" literal="sync"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GeneralProtocolClass" eSuperTypes="#//RoomClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link ProtocolClass}&lt;/li>&#xD;&#xA; &lt;li>{@link CompoundProtocolClass}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+ eType="#//Annotation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of protocol class annotations.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProtocolClass" eSuperTypes="#//GeneralProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Together with {@link ActorClass} and {@link DataClass} one of&#xD;&#xA;the main class types of the ROOM language.&#xD;&#xA;&lt;p>&#xD;&#xA;A protocol class specifies a directed {@link Port} interface&#xD;&#xA;by two sets of {@link Message}s: incoming and outgoing.&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;A protocol class can derive from a base class (single inheritance).&#xD;&#xA;In this case it must only extend &lt;em>one&lt;/em> of the message sets:&#xD;&#xA;incoming &lt;em>or&lt;/em> outgoing.&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;Optionally {@link PortClass}es may be defined for regular and&#xD;&#xA;conjugate {@link Port}s. These classes can be used to add specific&#xD;&#xA;behavior e.g. by adding message handlers. This kind of felxibility&#xD;&#xA;can be used in particular for the efficient implementation of&#xD;&#xA;services (SAPs and SPPs).&#xD;&#xA;&lt;/p>&#xD;&#xA;&lt;p>&#xD;&#xA;Last not least a so called 'legal execution tree' can be specified&#xD;&#xA;using {@link ProtocolSemantics}.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="commType" eType="#//CommunicationType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the communication type of the protocol.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//ProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The base class from which all messages are inherited.&#xD;&#xA;The port classes and the semantics are not inherited.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="incomingMessages" upperBound="-1"
+ eType="#//Message" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the set of incoming messages of this protocol.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingMessages" upperBound="-1"
+ eType="#//Message" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the set of outgoing messages of this protocol.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="regular" eType="#//PortClass"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the optional regular port class specification.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="conjugate" eType="#//PortClass"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the optional conjugate port class specification.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="semantics" eType="#//ProtocolSemantics"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the optional semantics specification for this protocol.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundProtocolClass" eSuperTypes="#//GeneralProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This special protocol class is used to bundle several protocols&#xD;&#xA;in relay ports. This can be useful to avoid parallel chains&#xD;&#xA;of {@link Binding}s traversing the structural hierarchy.&#xD;&#xA;&lt;p>&#xD;&#xA;The compound protocol class consists of several {@link SubProtocol}s.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subProtocols" upperBound="-1"
+ eType="#//SubProtocol" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of sub protocols.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SubProtocol">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The sub protocol is part of the {@link CompoundProtocolClass} and defines&#xD;&#xA;kind of a named channel for messages. The sub protocols are used to associate an&#xD;&#xA;end port with a particular channel.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the sub protocols or channels are distinguished.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//GeneralProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the protocol of this channel.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A message in ROOM is part of a {@link ProtocolClass}. Messages are exchanged via {@link Port}s.&#xD;&#xA;For event driven protocols the message is an object that is deliverd using a message&#xD;&#xA;service of the runtime. For data driven systems only messages holding data are valid. In this&#xD;&#xA;case the conjugate port is the one holding (and writing) the data and the regular port is&#xD;&#xA;reading the data.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="priv" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If this flag is {@code true} then the message is treated as private for this protocol&#xD;&#xA;and can only be sent by a PortClass.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the message is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//VarDecl"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a reference to optional message data.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PortClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A port class can be specified to customize the behavior of a {@link ProtocolClass}.&#xD;&#xA;There can be one for regular ports and another one for conjugate ports independently.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Port classes can be used to define attributes and operations and message handlers&#xD;&#xA;(or interceptors).&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userCode" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The user code is treated in a generator dependent way.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attribute" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of attributes of this nested class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1"
+ eType="#//PortOperation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of operations of this nested class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="msgHandlers" upperBound="-1"
+ eType="#//MessageHandler" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of message handlers.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageHandler">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link InMessageHandler}&lt;/li>&#xD;&#xA; &lt;li>{@link OutMessageHandler}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="msg" eType="#//Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the message that is handled.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the handler code written in code generator target language.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InMessageHandler" eSuperTypes="#//MessageHandler">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Is a handler (or interceptor) for incoming messages. In the generated code the&#xD;&#xA;message is available. It is derived from {@link MsgHandler}.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutMessageHandler" eSuperTypes="#//MessageHandler">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Is a handler (or interceptor) for outgoing messages. In the generated code the&#xD;&#xA;message is available. It is derived from {@link MsgHandler}.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProtocolSemantics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An optional semantics specification as part of a {@link ProtocolClass}.&#xD;&#xA;The semantic is defined as a &lt;em>legal execution tree&lt;/em>.&#xD;&#xA;This tree is composed of incoming and outgoing messages and each path through&#xD;&#xA;this tree is a valid sequence of messages exchanged through a port instance.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The semantics are composed using {@link SemanticsRule]s.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" upperBound="-1"
+ eType="#//SemanticsRule" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of semantic rules.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SemanticsRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link InSemanticsRule}&lt;/li>&#xD;&#xA; &lt;li>{@link OutSemanticsRule}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="msg" eType="#//Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The message to which this rule applies.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="followUps" upperBound="-1"
+ eType="#//SemanticsRule" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The possible follow up rules.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InSemanticsRule" eSuperTypes="#//SemanticsRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A {@link SemanticsRule} for incoming messages.&#xD;&#xA;The rule points to an incoming messages and allows follow-up rules.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutSemanticsRule" eSuperTypes="#//SemanticsRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A {@link SemanticsRule} for outgoing messages.&#xD;&#xA;The rule points to an outgoing messages and allows follow-up rules.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ActorCommunicationType">
+ <eLiterals name="EVENT_DRIVEN" literal="eventdriven"/>
+ <eLiterals name="DATA_DRIVEN" value="1" literal="datadriven"/>
+ <eLiterals name="ASYNCHRONOUS" value="2" literal="async"/>
+ <eLiterals name="SYNCHRONOUS" value="3" literal="sync"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActorClass" eSuperTypes="#//ActorContainerClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Together with {@link ProtocolClass} and {@link DataClass} one of&#xD;&#xA;the main class types of the ROOM language.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The actor class in ROOM has three compartments which aren't represented as separate model objects.&#xD;&#xA;To understand to which compartment an attribute or reference belongs to here is a list&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>Interface: everything which is visible from the outside from a model point of view&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>{@link #getIfPorts}: a list of all interface {@link Port}s&lt;/li>&#xD;&#xA; &lt;li>{@link ActorContainerClass#getIfSPPs}: a list of all interface {@link SPPRef}s&lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA; &lt;li>Structure: all internal structural aspects of an actor class&lt;/li>&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>{@link #getUsercode1}-3: user defined code with generator dependent meaning&lt;/li>&#xD;&#xA; &lt;li>{@link #getIntPorts}: a list of all internal end {@link Port}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getExtPorts}: a list of all {@link ExternalPort}s (the interface ports that&#xD;&#xA; are end ports, not relay ports&lt;/li>&#xD;&#xA; &lt;li>{@link #getServiceImplementations}: a list of all {@link ServiceImplementation}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getStrSAPs}: a list of all {@link SAPRef}s used by this actor class&lt;/li>&#xD;&#xA; &lt;li>{@link #getAttributes}: a list of all actor class {@link Attribute}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getActorRefs}: a list of all referenced actor classes (an {@link ActorRef}&#xD;&#xA; has the meaning of a composition)&lt;/li>&#xD;&#xA; &lt;li>{@link #getBindings}: a list of all port {@link Binding}s of this actor class&lt;/li>&#xD;&#xA; &lt;li>{@link #getConnections}: a list of all {@link LayerConnections}&lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA; &lt;li>Behavior: the behavioral aspects of an actor class&lt;/li>&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>{@link #getOperations}: a list of {@link Operation}s&lt;/li>&#xD;&#xA; &lt;li>{@link #getStateMachine}: the {@link StateMachine} definition&lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA;&lt;/ul>&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If {@code true} this actor class can not be instantiated and can only be base class&#xD;&#xA;for other actor classes.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="commType" eType="#//ActorCommunicationType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The communication type of this actor class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//ActorClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The base class from which all attributes, operations, ports, SAPs&#xD;&#xA;and state machine are inherited.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ifPorts" upperBound="-1"
+ eType="#//Port" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list containing all ports of the actor interface.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="structureDocu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation of the actor structure.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="intPorts" upperBound="-1"
+ eType="#//Port" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list containing all ports of the actor structure (internal end ports).&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extPorts" upperBound="-1"
+ eType="#//ExternalPort" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list containing all ports of the actor interface that are end ports.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="serviceImplementations"
+ upperBound="-1" eType="#//ServiceImplementation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all service implementations.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="strSAPs" upperBound="-1"
+ eType="#//SAPRef" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all SAPs.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attribute" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all actor class private attributes.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorDocu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation of the actor behavior.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorAnnotations" upperBound="-1"
+ eType="#//Annotation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of annotations to the actor behavior.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1"
+ eType="#//StandardOperation" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all private operations of this actor class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" eType="#//StateGraph"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the actor's optional state machine.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InterfaceItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link Port}&lt;/li>&#xD;&#xA; &lt;li>{@link SAPRef}&lt;/li>&#xD;&#xA; &lt;li>{@link SPPRef}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="getGeneralProtocol" eType="#//GeneralProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (this instanceof org.eclipse.etrice.core.room.Port)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.Port) this).getProtocol();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.SAPRef)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.SAPRef) this).getProtocol();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.SPPRef)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.SPPRef) this).getProtocol();&#xD;&#xA;return null;&#xD;&#xA;"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the interface item is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//InterfaceItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A port defines a part of the interface of an {@link ActorClass} in a specific role.&#xD;&#xA;The port is associated with a {@link ProtocolClass}. If it is conjugated then the&#xD;&#xA;roles of incoming and outgoing messages of the protocol are inverted.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Ports can have a multiplicity. If it is greater one the port is called replicated.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Whether a port is a relay port or not is a property that is derived from how it is&#xD;&#xA;referenced by its {@link ActorClass}:&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>ports contained in the actor structure are called &lt;em>internal end ports&lt;/em>&lt;/li>&#xD;&#xA; &lt;li>ports contained in the actor interface and are also referenced by an {@link ExternalPort}&#xD;&#xA; are called &lt;em>external end ports&lt;/em>&lt;/li>&#xD;&#xA; &lt;li>ports contained in the actor interface only are called &lt;em>relay ports&lt;/em>&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;Relay ports delegate to sub actors and end ports are connected to the actor's state machine.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;@see {@link org.eclipse.etrice.core.room.util.RoomHelpers#isRelay(Port) RoomHelpers.isRelay(Port)}&#xD;&#xA;@see {@link org.eclipse.etrice.core.room.util.RoomHelpers#isInternal(Port) RoomHelpers.isInternal(Port)}&#xD;&#xA;@see {@link org.eclipse.etrice.core.room.util.RoomHelpers#isExternal(Port) RoomHelpers.isExternal(Port)}&#xD;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="isReplicated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return multiplicity>1 || multiplicity==-1;"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="conjugated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If a port is conjugated then the roles of outgoing and incoming messages are interchanged.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Ports with multiplicity >1 are called relay ports. A multiplicity of {@code -1} means replicated&#xD;&#xA;port with arbitrary multiplicity.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//GeneralProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the port's protocol class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExternalPort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An external port is part of the actor structure and references an interface port.&#xD;&#xA;An interface port which is referenced by an external port is an external end port.&#xD;&#xA;If it is not referenced it is a relay port.&#xD;&#xA;&#xD;&#xA;@see {@link Port}&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ifport" eType="#//Port">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced interface port of the actor class which is now an external end port.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SAPRef" eSuperTypes="#//InterfaceItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A service access point is similar to a {@link Port} but is not explicitly bound to a peer.&#xD;&#xA;Rather, it is bound to a {@link ServiceImplementation} which is connected to one of the&#xD;&#xA;containing actors.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;An SAP is associated with a {@link ProtocolClass} and is conjugate to this protocol.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the SAPRef's protocol class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SPPRef" eSuperTypes="#//InterfaceItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A service provision point is used to connect an actor class with a {@link ServiceImplementation}.&#xD;&#xA;It can (similar to relay ports) delegate to another actor class (using a {@link LayerConnection})&#xD;&#xA;or connect to a {@link ServiceImplementation} of its actor class.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;An SPP is associated with a {@link ProtocolClass} and is regular to this protocol.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the SAPRef's protocol class.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceImplementation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A service implementation can be reagrded as the replicated peer port of all {@link SAPRef}s&#xD;&#xA;that are bound to it following the service resolution logic.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="spp" eType="#//SPPRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the SPP connected to the service.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LogicalSystem" eSuperTypes="#//StructureClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The top level structural class. It can only contain sub systems using {@link SubSystemRef}s.&#xD;&#xA;This way the logical system is composed of sub system instances. It also defines&#xD;&#xA;{@link Binding}s and {@link LayerConnection}s between those sub systems.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The logical system is the root of the instance tree of the generator model.&#xD;&#xA;Each {@link SubSystemRef} is turned into a {@link SubSystemInstance} and each&#xD;&#xA;{@link ActorRef} is turned into an {@link ActorInstance}.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subSystems" upperBound="-1"
+ eType="#//SubSystemRef" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The list of all sub systems contained in the logical system.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActorContainerRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link SubSystemRef}&lt;/li>&#xD;&#xA; &lt;li>{@link ActorRef}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;The reference designates a specific role of the referenced structure class.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the actor container reference is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SubSystemRef" eSuperTypes="#//ActorContainerRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A means to compose {@link LogicalSystem}s of {@link SubSystemClass}es. Each ref will&#xD;&#xA;be turned into a sub system instance of the referenced type.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//SubSystemClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The type of the reference.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SubSystemClass" eSuperTypes="#//ActorContainerClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A sub system class corresponds to a process with a separate address space.&#xD;&#xA;It has no behavior of its own and is composed of {@link ActorClass}es.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Sub systems can be connected using {@link Port}s and {@link Binding}s.&#xD;&#xA;All ports of a sub system are relay ports.&#xD;&#xA;&lt;/p>&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;Sub systems can define an arbitrary number of logical threads onto which their actor&#xD;&#xA;instances are mapped.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="relayPorts" upperBound="-1"
+ eType="#//Port" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all relay ports of the sub system.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="threads" upperBound="-1"
+ eType="#//LogicalThread" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all actor instance mappings of the sub system.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorInstanceMappings"
+ upperBound="-1" eType="#//ActorInstanceMapping" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of actor instance mappings.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LogicalThread">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A logical thread is addressed by the {@link ActorInstanceMapping}s of a {@link SubSystemClass}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the thread is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActorInstanceMapping">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An actor instance mapping maps an actor instances (described as a path of actor references)&#xD;&#xA;to a {@link LogicalThread}&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//RefPath"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the path of references starting at this sub system that uniquely references an actor instance.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="thread" eType="#//LogicalThread">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the logical thread to which the referenced actor instance and all of its contained instances&#xD;&#xA;are mapped.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorInstanceMappings"
+ upperBound="-1" eType="#//ActorInstanceMapping" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of nested mappings which override parent mappings.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RefPath">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A path of strings that are interpreted as {@link ActorRef}s starting at a {@link SubSystemClass}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="refs" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a path in the instance tree where each segment corresponds to the name of the&#xD;&#xA;corresponding {@link ActorContainerRef}.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Binding">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A binding connects two {@link Port}s.&#xD;&#xA;To be able to distinguish the ports of two {@link ActorContainerRef}s of the same type&#xD;&#xA;a {@link BindingEndPoint} is needed for disambiguation.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="endpoint1" eType="#//BindingEndPoint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The first end point of a binding.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="endpoint2" eType="#//BindingEndPoint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The second end point of a binding.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BindingEndPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A binding end point is a pair of an {@link ActorContainerRef} and a {@link Port} and is used&#xD;&#xA;to uniquely describe a port of a sub actor. If the actor container ref is {@code null} then&#xD;&#xA;a port of the actor class itself is addressed.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorRef" eType="#//ActorContainerRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The actor reference holding the bound port or {@code null} in case of a local port.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the bound port.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sub" eType="#//SubProtocol">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the bound sub protocol or {@code null} if not applicable.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LayerConnection">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Layer connections are used to connect {@link SAPRef}s and {@link ServiceImplementation}s.&#xD;&#xA;The source is described by a {@link SAPoint} and the target by a {@link SPPoint}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//SAPoint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is source point of the layer connection.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//SPPoint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is target point of the layer connection.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SAPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link RefSAPoint}&lt;/li>&#xD;&#xA; &lt;li>{@link RelaySAPoint}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RefSAPoint" eSuperTypes="#//SAPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Links from a {@link ActorContainerRef}, i.e. from a sub actor.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ActorContainerRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced actor container ref.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RelaySAPoint" eSuperTypes="#//SAPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Links from a relay {@link SPPRef} of the actor class.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="relay" eType="#//SPPRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced SPPRef.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SPPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Links to a {@link SPPRef} of an {@link ActorContainerRef}, i.e. an SPPRef of a sub actor&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ActorContainerRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced actor container ref.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="service" eType="#//SPPRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced service.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActorRef" eSuperTypes="#//ActorContainerRef">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A means to compose {@link SubSystemClass}es of {@link ActorClass}es. Each ref will&#xD;&#xA;be turned into an actor instance of the referenced type.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If the size is >1 then this is a replicated actor.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//ActorClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the type (i.e. actor class) of the actor ref.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateGraphNode" eSuperTypes="#//StateGraphItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link State}&lt;/li>&#xD;&#xA; &lt;li>{@link ChoicePoint}&lt;/li>&#xD;&#xA; &lt;li>{@link TrPoint}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateGraphItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link StateStateGraphNode}&lt;/li>&#xD;&#xA; &lt;li>{@link Transition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="if (this instanceof org.eclipse.etrice.core.room.State) &#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.State)this).getName();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.TrPoint)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.TrPoint)this).getName();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.ChoicePoint)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.ChoicePoint)this).getName();&#xD;&#xA;else if (this instanceof org.eclipse.etrice.core.room.Transition)&#xD;&#xA;&#x9;return ((org.eclipse.etrice.core.room.Transition)this).getName();&#xD;&#xA;return &quot;&quot;;&#xD;&#xA;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//StateGraphNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link SimpleState}&lt;/li>&#xD;&#xA; &lt;li>{@link RefinedState}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return (this instanceof org.eclipse.etrice.core.room.SimpleState)? ((org.eclipse.etrice.core.room.SimpleState)this).getName() :(this instanceof org.eclipse.etrice.core.room.RefinedState)? (((org.eclipse.etrice.core.room.RefinedState)this).getTarget()==null? &quot;&quot;:((org.eclipse.etrice.core.room.RefinedState)this).getTarget().getName()) :&quot;&quot;;"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entryCode" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional entry code written in the code generator's target language.&#xD;&#xA;It is executed when the state is entered.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exitCode" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional entry code written in the code generator's target language.&#xD;&#xA;It is executed when the state is left.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="doCode" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional do code written in the code generator's target language.&#xD;&#xA;It is executed whenever the actor instance is polled (applies only to&#xD;&#xA;data driven and sync actor classes).&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subgraph" eType="#//StateGraph"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional sub state graph of this state.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateGraph">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A state graph is a directed graph composed of&#xD;&#xA;{@link StateGraphNode}s as nodes and {@link Transitions} as edges.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
+ eType="#//State" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all states of this state graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="trPoints" upperBound="-1"
+ eType="#//TrPoint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all transition, entry and exit points of this state graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="chPoints" upperBound="-1"
+ eType="#//ChoicePoint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all choice points of this state graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
+ eType="#//Transition" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all transitions of this state graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refinedTransitions" upperBound="-1"
+ eType="#//RefinedTransition" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all refined transitions of this state graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SimpleState" eSuperTypes="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A simple state is the standard case of a @link State}.&#xD;&#xA;It comprises and &lt;em>entry&lt;/em>, &lt;em>exit&lt;/em> and &lt;em>do&lt;/em> code&#xD;&#xA;and it can contain another {@link StateGRaph} as sub state&#xD;&#xA;graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the state is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RefinedState" eSuperTypes="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A refined state can be used only in a derived {@link ActorClass}.&#xD;&#xA;It refers to a {@link State} in the inherited state machine&#xD;&#xA;which is refined by adding detail code and/or&#xD;&#xA;{@link StateGRaphItem}s in the sub state graph.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced state in the base class state machine.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DetailCode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The detail code contains a list of strings which&#xD;&#xA;are considered verbatim code of the code generator&#xD;&#xA;target language.&#xD;&#xA;&#xD;&#xA;&lt;p>&#xD;&#xA;The detail code is parsed by the {@link DetailCodeTranslator}&#xD;&#xA;which replaces certain frequent constructs like access of members&#xD;&#xA;and sending a message via a port by target language specific code.&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="commands" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of commands in the code generator's target language.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TrPoint" eSuperTypes="#//StateGraphNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link TransitionPoint}&lt;/li>&#xD;&#xA; &lt;li>{@link EntryPoint}&lt;/li>&#xD;&#xA; &lt;li>{@link ExitPoint}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the transition, entry or exit point is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransitionPoint" eSuperTypes="#//TrPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A transition point is located at the border of a {@link State}&#xD;&#xA;and is not visible or accessible outside. It is used&#xD;&#xA;to globally handle messages. If a {@link Transition} starting&#xD;&#xA;at a transition point triggers then exit and entry codes&#xD;&#xA;are executed as usual as long as the handler flag of the&#xD;&#xA;transition point isn't set.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="handler" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>If this flag is {@code true} then for a transition triggerd from this point&#xD;&#xA;no exit and entry codes of the states left and entered are executed.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryPoint" eSuperTypes="#//TrPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An entry point is located at the border of a {@link State}&#xD;&#xA;and is visible and accessible outside. Outside&#xD;&#xA;it can be the target of a {@link Transition} and inside the source.&#xD;&#xA;If it is not connected in the interior then it is a&#xD;&#xA;&lt;em>transition to history&lt;/em>.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExitPoint" eSuperTypes="#//TrPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An exit point is located at the border of a {@link State}&#xD;&#xA;and is visible and accessible outside. Outside&#xD;&#xA;it can be the source of a {@link Transition} and inside the target.&#xD;&#xA;If it is not connected in the interior then it is a&#xD;&#xA;&lt;em>group transition&lt;/em>.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ChoicePoint" eSuperTypes="#//StateGraphNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A choice point corresponds to an {@code if else} construct.&#xD;&#xA;It is the target of one or more {@link Transition}s and the&#xD;&#xA;source of several {@link Transition}s.&#xD;&#xA;One outgoing transitions must be a {@link ContinuationTransition}&#xD;&#xA;and corresponds to the final else. It is called the&#xD;&#xA;&lt;em>default branch&lt;/em> of the choice point.&#xD;&#xA;All other outgoing transitions have to be {@link CPBranchTransition}s.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>By this name the choice point is referred to in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//StateGraphItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link InitialTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link NonInitialTransition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional name of the transition.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//TransitionTerminal"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the target node of the transition.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="action" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional code in the code generator's target language.&#xD;&#xA;It is execute when the transition fires.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NonInitialTransition" eSuperTypes="#//Transition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link TransitionChainStartTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link ContinuationTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link CPBranchTransition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//TransitionTerminal"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the source node of the transition.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransitionChainStartTransition" eSuperTypes="#//NonInitialTransition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link TriggeredTransition}&lt;/li>&#xD;&#xA; &lt;li>{@link GuardedTransition}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InitialTransition" eSuperTypes="#//Transition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>There can be at most one initial transition in a {@link StateGraph}.&#xD;&#xA;It defines the starting point of the state graph and is traversed&#xD;&#xA;exactly once when the state graph is accessed for the first time.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ContinuationTransition" eSuperTypes="#//NonInitialTransition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Continuation transitions start at entry or exit points&#xD;&#xA;({@link EntryPoint}s or {@link ExitPoint}s) or form&#xD;&#xA;the default branch of a {@link ChoicePoint}.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TriggeredTransition" eSuperTypes="#//TransitionChainStartTransition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>Triggered transitions start at a {@link State} or a {@link TransitionPoint}.&#xD;&#xA;It defines a list of {@link Trigger}s that specify the conditions&#xD;&#xA;when the transition fires and is traversed. This kind of&#xD;&#xA;transition is only allowed in event driven and mixed (async) state&#xD;&#xA;machines.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="triggers" upperBound="-1"
+ eType="#//Trigger" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of all triggers of the transition.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GuardedTransition" eSuperTypes="#//TransitionChainStartTransition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A guarded transition is very similar to a {@link CPBranchTransition}.&#xD;&#xA;It defines a guard condition which lets the transition fire if&#xD;&#xA;evaluated to {@code true}. This kind of transition is only&#xD;&#xA;allowed in data driven or moixed (async) state machines.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the guard condition of the transition specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CPBranchTransition" eSuperTypes="#//NonInitialTransition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The choice point branch transitions is allowed only as outgoing&#xD;&#xA;transition of {@link ChoicePoint}s.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the condition of the choice point branch specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RefinedTransition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The refined transition is only allowed in {@link StateGraph}s&#xD;&#xA;of derived {@link ActorClass}es. It targets a {@link Transition}&#xD;&#xA;of the base class state machine.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//Transition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the referenced transition in the base class state machine.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="#//Documentation"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional documentation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="action" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional code in the code generator's target language.&#xD;&#xA;It is execute when the transition fires.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransitionTerminal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The super class of&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>{@link StateTerminal}&lt;/li>&#xD;&#xA; &lt;li>{@link TrPointTerminal}&lt;/li>&#xD;&#xA; &lt;li>{@link SubStateTrPointTerminal}&lt;/li>&#xD;&#xA; &lt;li>{@link ChoicepointTerminal}&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateTerminal" eSuperTypes="#//TransitionTerminal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a {@link State}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the target state.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TrPointTerminal" eSuperTypes="#//TransitionTerminal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a local {@link TrPoint}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="trPoint" eType="#//TrPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the target transition, entry or exit point.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SubStateTrPointTerminal" eSuperTypes="#//TransitionTerminal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a {@link TrPoint} of a sub {@link State}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="trPoint" eType="#//TrPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the target entry or exit point contained in the target state.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the target state.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ChoicepointTerminal" eSuperTypes="#//TransitionTerminal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The terminal point (source or target) of a transition ending&#xD;&#xA;at a {@link ChoicepointTerminal}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cp" eType="#//ChoicePoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the target choice point.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Trigger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A transition trigger is a list of {@link MessageFromIf} pairs&#xD;&#xA;and an optional {@link Guard}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="msgFromIfPairs" upperBound="-1"
+ eType="#//MessageFromIf" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of message/interface item pairs.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//Guard"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is an optional guard condition of the trigger specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageFromIf">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A pair consisting of a {@link Message} arising from an&#xD;&#xA;{@link InterfaceItem}.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="message" eType="#//Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the triggerering message (or event).&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//InterfaceItem">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the interface item where the message occurred.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Guard">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A detail code that evaluates to a boolean in the target&#xD;&#xA;language.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//DetailCode"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a guard condition specified in the code generator's target language.&#xD;&#xA;It has to evaluate to a boolean value.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Documentation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A piece of documentation that can be optionally attached at&#xD;&#xA;certain places in the model.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the documentation's contents.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Annotation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>An annotation similar to Java annotations that can be used&#xD;&#xA;to add {@link KeyValue} pairs to certain model items.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the name of the annotation.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//KeyValue" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is a list of key/value pairs.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="KeyValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>A key/value pair.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the key of the pair.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>This is the value of the pair.&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Import">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The import declares an imported model (given as a URI) and&#xD;&#xA;an optional imported namespace.&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="importedNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The imported name space has to be a dot separated qualified name followed by .*.&#xD;&#xA;Example: my.namespace.*&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="importURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&lt;br>The import URI can be a relative or absolute file system path.&#xD;&#xA;It may contain environment variables in ${} which will be expanded.&#xD;&#xA;&lt;p>&#xD;&#xA;Examples:&#xD;&#xA;&lt;ul>&#xD;&#xA; &lt;li>import model &quot;AnotherModel.room&quot;&lt;/li>&#xD;&#xA; &lt;li>import my.namespace.* from &quot;AnotherModel.room&quot;&lt;/li>&#xD;&#xA; &lt;li>import my.namespace.* from &quot;../../AnotherProject/models/AnotherModel.room&quot;&lt;/li>&#xD;&#xA; &lt;li>import my.namespace.* from &quot;/${ROOM_MODELS}/SomeModel.room&quot;&lt;/li>&#xD;&#xA;&lt;/ul>&#xD;&#xA;&lt;/p>&#xD;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>

Back to the top