| <?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="<br>The root object for the ROOM model. It gives access to {@link Import imports} and
the {@link SubSystemClass sub system},
{@link ActorClass actor}, {@link ProtocolClass protocol} and
{@link DataClass data} classes defined.
"/> |
| </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="<br>The model name is a dot separated fully qualified name and is
used to provide a name space. The generators may use that also
to place the generated code into separate directories.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Import" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of all imported models.
"/> |
| </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="<br>This is a list of all primitive types defined by this model.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="enumerationTypes" upperBound="-1" |
| eType="#//EnumerationType" containment="true"/> |
| <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="<br>This is a list of all external types defined by this model.
"/> |
| </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="<br>This is a list of all data classes defined by this model.
"/> |
| </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="<br>This is a list of all protocol classes defined by this model.
"/> |
| </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="<br>This is a list of all actor classes defined by this model.
"/> |
| </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="<br>This is a list of all sub system classes defined by this model.
"/> |
| </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="<br>This is a list of all logical systems defined by this model.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="annotationTypes" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//AnnotationType" |
| containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="RoomClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This class is the super class of all classes
of the ROOM class model:
<ul>
 <li>{@link DataType}</li>
 <li>{@link GeneralProtocolClass}</li>
 <li>{@link StructureClass}</li>
</ul>
"/> |
| </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="<br>By this name the actor class is referred to in the model.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </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="<br>This class is the super class of the structural classes
<ul>
 <li>{@link ActorContainerClass}</li>
 <li>{@link LogicalSystem}</li>
</ul>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Annotation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of structure class annotations.
"/> |
| </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="<br>This is a list of structure class connections.
"/> |
| </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="<br>This is a list of structure class bindings.
"/> |
| </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="<br>This class is the super class of the structural classes
<ul>
 <li>{@link ActorClass}</li>
 <li>{@link SubSystemClass}</li>
</ul>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="serviceProvisionPoints" |
| upperBound="-1" eType="#//SPP" containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of all interface SPPs.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </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="<br>This is a list of all actor refs.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="VarDecl"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A variable declaration consists of a name and a type.
"/> |
| </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="<br>By this name the variable is referred to in the model.
"/> |
| </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="<br>This is the data type of the variable.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="MessageData"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="deprecatedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="refType" eType="#//RefableType" |
| containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="RefableType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a type with an optional reference attribute.
If 'ref' is {@code true} then by reference semantic is chosen.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//DataType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the data type.
"/> |
| </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="<br>If {@code true} then by reference semantics is chosen, by value semantics else.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//RoomClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The super class of
<ul>
 <li>{@link PrimitiveType}</li>
 <li>{@link EnumerationType}</li>
 <li>{@link ComplexType}</li>
</ul>
"/> |
| </eAnnotations> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ComplexType" eSuperTypes="#//DataType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The super class of
<ul>
 <li>{@link DataClass}</li>
 <li>{@link ExternalType}</li>
</ul>
"/> |
| </eAnnotations> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A primitive type describes a type like int, char, float
and can represent the type with a certain precision
in the target language
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EEnum ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//LiteralType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is one of the basic variable types.
"/> |
| </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="<br>This is the type name in the target language.
"/> |
| </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="<br>This (optional) name is used for casts to this type.
"/> |
| </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="<br>This is an optional default value literal.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="EnumerationType" eSuperTypes="#//DataType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A sub type of {@link DataType} for enumerations.
The EnumerationType can be associated with a {@link PrimitiveType} as value type for
the {@link EnumLiteral}s. It has to contain at least one literal.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="primitiveType" eType="#//PrimitiveType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The value type of the literals.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" |
| eType="#//EnumLiteral" containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="EnumLiteral"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A literal value of the enumeration.
It can have a value associated.
"/> |
| </eAnnotations> |
| <eOperations name="getLiteralValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="if (this.getLiteral() != null)
	return this.getLiteral().getValue();

// recursively from predecessor
<%org.eclipse.etrice.core.room.EnumerationType%> et = ((EnumerationType) this.eContainer());
int idx = et.getLiterals().indexOf(this);
if (idx > 0)
	return et.getLiterals().get(idx - 1).getLiteralValue() + 1;

return 0;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getFullName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="<%org.eclipse.etrice.core.room.EnumerationType%> et = ((EnumerationType) this.eContainer());
return et.getName() + "." + this.getName();
"/> |
| </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="<br>The name of the literal.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="literal" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//IntLiteral" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The value of the literal. It is associated with a target type which defaults to
{@code int} and can be set explicitly using the {@link EnumerationType#getPrimitiveType()}
"/> |
| </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="<br>An external type is not defined in the ROOM model
but only referenced. It can not be instantiated.
"/> |
| </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="<br>This is the type name in the target language.
"/> |
| </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="<br>This is an optional default value literal.
"/> |
| </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="<br>Together with {@link ProtocolClass} and {@link ActorClass} one of
the main class types of the ROOM language.

<p>
In ROOM this is the equivalent to a class in Java or C++.
A data class can be derived from a base class (single
inheritance), has {@link Attribute}s and {@link Operation}s.
</p>

<p>
Additionally it can be annotated with generator specific
meaning and user ocde can be added in several places
(again generator specific).
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//DataClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The base class from which all attributes and operations are inherited.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Annotation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of data class annotations.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </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="<br>Operations are the methods of the data class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="structors" upperBound="-1" |
| eType="#//ClassStructor" containment="true"/> |
| <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="<br>Attributes are the data members of the data class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Attribute"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>An attribute is a named member of a
<ul>
 <li>{@link DataClass}</li>
 <li>{@link ActorClass}</li>
 <li>{@link PortClass}</li>
</ul>
<p>
It can be of scalar or array type and is of a {@link RefableType}.
It is possible to assign a default value literal.
</p>
"/> |
| </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="<br>The name of the attribute by which it is referred to in the model.
"/> |
| </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="<br>The default is scalar ({@code size=1}), values {@code >1} indicate an array.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//RefableType" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the attribute's type.
"/> |
| </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="<br>This is an optional default value literal.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Operation"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The super class of
<ul>
 <li>{@link StandardOperation}</li>
 <li>{@link PortOperation}</li>
</ul>
"/> |
| </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="<br>The name of the operation by which it is referred to in the model.
"/> |
| </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="<br>This is a list of arguments for the operation.
"/> |
| </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="<br>This is an optional return type of the operation.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the operation body written in code generator target language.
"/> |
| </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="<br>The standard form of an operation as used by
{@link ActorClass} and {@link DataClass}.
<p>
The operation has a list of {@link VarDecl} arguments, an
optional return {@link RefableType} and a body (specified
as {@link DetailCode}).
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="override" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="PortOperation" eSuperTypes="#//Operation"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The port operation is very similar to the {@link StandardOperation}
and is used in the {@link PortClass}.
<p>
Optionally a {@link Message} can be specified which is sent
when the method is invoked. For this reason these operations
are also shown in the 'messages' dialog of the behavior editor.
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="sendsMsg" eType="#//Message"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This optional reference to a message means that the operation sends a message.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ClassStructor"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>Represents either the constructor (ctor) or destructor (dtor) of a ROOM class.
"/> |
| </eAnnotations> |
| <eOperations name="isConstructor" 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 "ctor".equals(this.getName());
"/> |
| </eAnnotations> |
| </eOperations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"/> |
| </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="<br>The super class of
<ul>
 <li>{@link ProtocolClass}</li>
 <li>{@link CompoundProtocolClass}</li>
</ul>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Annotation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of protocol class annotations.
"/> |
| </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="<br>Together with {@link ActorClass} and {@link DataClass} one of
the main class types of the ROOM language.
<p>
A protocol class specifies a directed {@link Port} interface
by two sets of {@link Message}s: incoming and outgoing.
</p>
<p>
A protocol class can derive from a base class (single inheritance).
In this case it must only extend <em>one</em> of the message sets:
incoming <em>or</em> outgoing.
</p>
<p>
Optionally {@link PortClass}es may be defined for regular and
conjugate {@link Port}s. These classes can be used to add specific
behavior e.g. by adding message handlers. This kind of felxibility
can be used in particular for the efficient implementation of
services (SAPs and SPPs).
</p>
<p>
Last not least a so called 'legal execution tree' can be specified
using {@link ProtocolSemantics}.
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="commType" eType="#//CommunicationType"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the communication type of the protocol.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//ProtocolClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The base class from which all messages are inherited.
The port classes and the semantics are not inherited.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode1" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode2" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode3" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </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="<br>This is the set of incoming messages of this protocol.
"/> |
| </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="<br>This is the set of outgoing messages of this protocol.
"/> |
| </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="<br>This is the optional regular port class specification.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="conjugated" eType="#//PortClass" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the optional conjugate port class specification.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="semantics" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//ProtocolSemantics" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the optional semantics specification for this protocol.
"/> |
| </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="<br>This special protocol class is used to bundle several protocols
in relay ports. This can be useful to avoid parallel chains
of {@link Binding}s traversing the structural hierarchy.
<p>
The compound protocol class consists of several {@link SubProtocol}s.
</p>
"/> |
| </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="<br>This is a list of sub protocols.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="SubProtocol"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The sub protocol is part of the {@link CompoundProtocolClass} and defines
kind of a named channel for messages. The sub protocols are used to associate an
end port with a particular channel.
"/> |
| </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="<br>By this name the sub protocols or channels are distinguished.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//GeneralProtocolClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the protocol of this channel.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Message"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a concrete sub class of an {@link AbstractMessage}.
A message in ROOM is part of a {@link ProtocolClass}. Messages are exchanged via {@link Port}s.
For event driven protocols the message is an object that is deliverd using a message
service of the runtime. For data driven systems only messages holding data are valid. In this
case the conjugate port is the one holding (and writing) the data and the regular port is
reading the data.
"/> |
| </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="<br>If this flag is {@code true} then the message is treated as private for this protocol
and can only be sent by a PortClass.
"/> |
| </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="<br>By this name the message is referred to in the model.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//MessageData" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a reference to optional message data.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Annotation" |
| containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="PortClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A port class can be specified to customize the behavior of a {@link ProtocolClass}.
There can be one for regular ports and another one for conjugate ports independently.

<p>
Port classes can be used to define attributes and operations and message handlers
(or interceptors).
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="userCode" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The user code is treated in a generator dependent way.
"/> |
| </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="<br>This is a list of message handlers.
"/> |
| </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="<br>This is a list of operations of this nested class.
"/> |
| </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="<br>This is a list of attributes of this nested class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="MessageHandler"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The super class of
<ul>
 <li>{@link InMessageHandler}</li>
 <li>{@link OutMessageHandler}</li>
</ul>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="msg" eType="#//Message"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the message that is handled.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="detailCode" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//DetailCode" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the handler code written in code generator target language.
"/> |
| </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="<br>Is a handler (or interceptor) for incoming messages. In the generated code the
message is available. It is derived from {@link MessageHandler}.
"/> |
| </eAnnotations> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="OutMessageHandler" eSuperTypes="#//MessageHandler"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>Is a handler (or interceptor) for outgoing messages. In the generated code the
message is available. It is derived from {@link MessageHandler}.
"/> |
| </eAnnotations> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ActorClass" eSuperTypes="#//ActorContainerClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//ModelComponent"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>Together with {@link ProtocolClass} and {@link DataClass} one of
the main class types of the ROOM language.

<p>
The actor class in ROOM has three compartments which aren't represented as separate model objects.
To understand to which compartment an attribute or reference belongs to here is a list
<ul>
 <li>Interface: everything which is visible from the outside from a model point of view
 <ul>
 <li>{@link #getInterfacePorts}: a list of all interface {@link Port}s</li>
 <li>{@link ActorContainerClass#getServiceProvisionPoints()}: a list of all interface {@link SPP}s</li>
 </ul>
 <li>Structure: all internal structural aspects of an actor class</li>
 <ul>
 <li>{@link #getUserCode1}-3: user defined code with generator dependent meaning</li>
 <li>{@link #getInternalPorts}: a list of all internal end {@link Port}s</li>
 <li>{@link #getExternalPorts}: a list of all {@link ExternalPort}s (the interface ports that
 are end ports, not relay ports</li>
 <li>{@link #getServiceImplementations}: a list of all {@link ServiceImplementation}s</li>
 <li>{@link #getServiceAccessPoints}: a list of all {@link SAP}s used by this actor class</li>
 <li>{@link #getAttributes}: a list of all actor class {@link Attribute}s</li>
 <li>{@link #getActorRefs}: a list of all referenced actor classes (an {@link ActorRef}
 has the meaning of a composition)</li>
 <li>{@link #getBindings}: a list of all port {@link Binding}s of this actor class</li>
 <li>{@link #getConnections}: a list of all {@link LayerConnection}s</li>
 </ul>
 <li>Behavior: the behavioral aspects of an actor class</li>
 <ul>
 <li>{@link #getOperations}: a list of {@link Operation}s</li>
 <li>{@link #getStateMachine}: the {@link StateGraph state machine} definition</li>
 </ul>
</ul>
</p>
"/> |
| </eAnnotations> |
| <eOperations name="getExternalEndPorts" upperBound="-1" eType="#//Port"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="EList<Port> ports = new BasicEList<Port>();
for (ExternalPort ep : getExternalPorts()) {
	if(ep.getInterfacePort() != null)
		ports.add(ep.getInterfacePort());
}
return ports;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getRelayPorts" upperBound="-1" eType="#//Port"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="EList<Port> ports = new BasicEList<Port>(getInterfacePorts());
for (ExternalPort ep : getExternalPorts()) {
	if(ep.getInterfacePort() != null)
		ports.remove(ep.getInterfacePort());
}
return ports;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getImplementedSPPs" upperBound="-1" eType="#//SPP"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="EList<SPP> spps = new BasicEList<SPP>();
for (ServiceImplementation spp : getServiceImplementations()) {
	if(spp.getSpp() != null)
		spps.add(spp.getSpp());
}
return spps;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getActorBase" eType="#//ActorClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="return (ActorClass)getBase();
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getComponentName" 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 getName();
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getAbstractInterfaceItems" upperBound="-1" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//AbstractInterfaceItem"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="return new <%org.eclipse.emf.common.util.BasicEList%><AbstractInterfaceItem>(new <%org.eclipse.etrice.core.room.util.RoomHelpers%>().getInterfaceItems(this));
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getAllAbstractInterfaceItems" upperBound="-1" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//AbstractInterfaceItem"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="return new <%org.eclipse.emf.common.util.BasicEList%><AbstractInterfaceItem>(new <%org.eclipse.etrice.core.room.util.RoomHelpers%>().getAllInterfaceItems(this));
"/> |
| </eAnnotations> |
| </eOperations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="interfacePorts" upperBound="-1" |
| eType="#//Port" containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list containing all ports of the actor interface.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="structureDocu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation of the actor structure.
"/> |
| </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="<br>This is a list of all service implementations.
"/> |
| </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="<br>This is a list of all actor class private attributes.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="serviceAccessPoints" upperBound="-1" |
| eType="#//SAP" containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of all SAPs.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="internalPorts" upperBound="-1" |
| eType="#//Port" containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list containing all ports of the actor structure (internal end ports).
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="externalPorts" upperBound="-1" |
| eType="#//ExternalPort" containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list containing all ports of the actor interface that are end ports.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorDocu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation of the actor behavior.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorAnnotations" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Annotation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a list of annotations to the actor behavior.
"/> |
| </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="<br>This is a list of all private operations of this actor class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="structors" upperBound="-1" |
| eType="#//ClassStructor" containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="InterfaceItem" eSuperTypes="../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//AbstractInterfaceItem"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a concrete sub class of an {@link AbstractInterfaceItem}.

It is the super class of
<ul>
 <li>{@link Port}</li>
 <li>{@link SAP}</li>
 <li>{@link SPP}</li>
</ul>
"/> |
| </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%>)
	return ((Port) this).getProtocol();
else if (this instanceof <%org.eclipse.etrice.core.room.SAP%>)
	return ((SAP) this).getProtocol();
else if (this instanceof <%org.eclipse.etrice.core.room.SPP%>)
	return ((SPP) this).getProtocol();
return null;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getSemantics" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.fsm/model/generated/FSM.ecore#//ProtocolSemantics"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="if (getGeneralProtocol() instanceof <%org.eclipse.etrice.core.room.ProtocolClass%>)
	return ((ProtocolClass)getGeneralProtocol()).getSemantics();
else
	return null;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getAllIncomingAbstractMessages" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="return new <%org.eclipse.emf.common.util.BasicEList%><EObject>(new <%org.eclipse.etrice.core.room.util.RoomHelpers%>().getMessageListDeep(this, false));
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="getAllOutgoingAbstractMessages" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="return new <%org.eclipse.emf.common.util.BasicEList%><EObject>(new <%org.eclipse.etrice.core.room.util.RoomHelpers%>().getMessageListDeep(this, true));
"/> |
| </eAnnotations> |
| </eOperations> |
| <eOperations name="isEventDriven" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="if (getGeneralProtocol() instanceof ProtocolClass)
 return ((ProtocolClass) getGeneralProtocol()).getCommType() == <%org.eclipse.etrice.core.room.CommunicationType%>.EVENT_DRIVEN;
else
 return false;
"/> |
| </eAnnotations> |
| </eOperations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </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="<br>A port defines a part of the interface of an {@link ActorClass} in a specific role.
The port is associated with a {@link ProtocolClass}. If it is conjugated then the
roles of incoming and outgoing messages of the protocol are inverted.

<p>
Ports can have a multiplicity. If it is greater one the port is called replicated.
</p>

<p>
Whether a port is a relay port or not is a property that is derived from how it is
referenced by its {@link ActorClass}:
<ul>
 <li>ports contained in the actor structure are called <em>internal end ports</em></li>
 <li>ports contained in the actor interface and are also referenced by an {@link ExternalPort}
 are called <em>external end ports</em></li>
 <li>ports contained in the actor interface only are called <em>relay ports</em></li>
</ul>
Relay ports delegate to sub actors and end ports are connected to the actor's state machine.
</p>

@see org.eclipse.etrice.core.room.util.RoomHelpers#isRelay(Port) RoomHelpers.isRelay(Port)
@see org.eclipse.etrice.core.room.util.RoomHelpers#isInternal(Port) RoomHelpers.isInternal(Port)
@see org.eclipse.etrice.core.room.util.RoomHelpers#isExternal(Port) RoomHelpers.isExternal(Port)
"/> |
| </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="<br>If a port is conjugated then the roles of outgoing and incoming messages are interchanged.
"/> |
| </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="<br>Ports with multiplicity >1 are called relay ports. A multiplicity of {@code -1} means replicated
port with arbitrary multiplicity.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//GeneralProtocolClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the port's protocol class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" |
| eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Annotation" |
| containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ExternalPort"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>An external port is part of the actor structure and references an interface port.
An interface port which is referenced by an external port is an external end port.
If it is not referenced it is a relay port.

@see Port
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="interfacePort" eType="#//Port"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the referenced interface port of the actor class which is now an external end port.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="SAP" eSuperTypes="#//InterfaceItem"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A service access point is similar to a {@link Port} but is not explicitly bound to a peer.
Rather, it is bound to a {@link ServiceImplementation} which is connected to one of the
containing actors.

<p>
An SAP is associated with a {@link ProtocolClass} and is conjugate to this protocol.
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the SAP's protocol class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="SPP" eSuperTypes="#//InterfaceItem"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A service provision point is used to connect an actor class with a {@link ServiceImplementation}.
It can (similar to relay ports) delegate to another actor class (using a {@link LayerConnection})
or connect to a {@link ServiceImplementation} of its actor class.

<p>
An SPP is associated with a {@link ProtocolClass} and is regular to this protocol.
</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the SAP's protocol class.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ServiceImplementation"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A service implementation can be reagrded as the replicated peer port of all {@link SAP}s
that are bound to it following the service resolution logic.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="spp" eType="#//SPP"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the SPP connected to the service.
"/> |
| </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="<br>The top level structural class. It can only contain sub systems using {@link SubSystemRef}s.
This way the logical system is composed of sub system instances. It also defines
{@link Binding}s and {@link LayerConnection}s between those sub systems.

<p>
The logical system is the root of the instance tree of the generator model.
Each {@link SubSystemRef} is turned into a {@link org.eclipse.etrice.core.genmodel.etricegen.SubSystemInstance} and each
{@link ActorRef} is turned into an {@link org.eclipse.etrice.core.genmodel.etricegen.ActorInstance}.
</p>
"/> |
| </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="<br>The list of all sub systems contained in the logical system.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ActorContainerRef"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The super class of
<ul>
 <li>{@link SubSystemRef}</li>
 <li>{@link ActorRef}</li>
</ul>
The reference designates a specific role of the referenced structure class.
"/> |
| </eAnnotations> |
| <eOperations name="getStructureClass" eType="#//StructureClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="if (this instanceof <%org.eclipse.etrice.core.room.ActorRef%>)
	return ((ActorRef)this).getType();
else if (this instanceof <%org.eclipse.etrice.core.room.SubSystemRef%>)
	return ((SubSystemRef)this).getType();
else
	return null;
"/> |
| </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="<br>By this name the actor container reference is referred to in the model.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="docu" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.ecore#//Documentation" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is an optional documentation.
"/> |
| </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="<br>A means to compose {@link LogicalSystem}s of {@link SubSystemClass}es. Each ref will
be turned into a sub system instance of the referenced type.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//SubSystemClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The type of the reference.
"/> |
| </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="<br>A sub system class corresponds to a process with a separate address space.
It has no behavior of its own and is composed of {@link ActorClass}es.

<p>
Sub systems can be connected using {@link Port}s and {@link Binding}s.
All ports of a sub system are relay ports.
</p>

<p>
Sub systems can define an arbitrary number of logical threads onto which their actor
instances are mapped.
</p>
"/> |
| </eAnnotations> |
| <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="<br>This is a list of actor instance mappings.
"/> |
| </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="<br>This is a list of all actor instance mappings of the sub system.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <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="<br>This is a list of all relay ports of the sub system.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="LogicalThread"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A logical thread is addressed by the {@link ActorInstanceMapping}s of a {@link SubSystemClass}.
"/> |
| </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="<br>By this name the thread is referred to in the model.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ActorInstanceMapping"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>An actor instance mapping maps an actor instances (described as a path of actor references)
to a {@link LogicalThread}
"/> |
| </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="<br>This is the path of references starting at this sub system that uniquely references an actor instance.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="thread" eType="#//LogicalThread"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the logical thread to which the referenced actor instance and all of its contained instances
are mapped.
"/> |
| </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="<br>This is a list of nested mappings which override parent mappings.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="RefPath"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A path of strings that are interpreted as {@link org.eclipse.etrice.core.room.ActorRef}s starting at a {@link org.eclipse.etrice.core.room.SubSystemClass}.
"/> |
| </eAnnotations> |
| <eOperations name="toString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="body" value="StringBuilder sb = new StringBuilder();
for (RefSegment ref : getRefs()) {
	sb.append("/"+ref.toString());
}
return sb.toString();
"/> |
| </eAnnotations> |
| </eOperations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="refs" upperBound="-1" eType="#//RefSegment" |
| containment="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is a path in the instance tree where each segment corresponds to the name of the
corresponding {@link ActorContainerRef}.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="RefSegment"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A segment of a {@link RefPath}. It consists of a name and an optional index.
If the index is not set it will be {@code -1}.
"/> |
| </eAnnotations> |
| <eOperations name="toString" 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 getRef() + ((getIdx()>=0)? ":"+getIdx() : "");
"/> |
| </eAnnotations> |
| </eOperations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="ref" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The segment name corresponding to an actor reference.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="idx" 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="<br>The optional index of the reference (for replicated actors).
If not set the index is {@code -1}.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Binding"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A binding connects two {@link Port}s.
To be able to distinguish the ports of two {@link ActorContainerRef}s of the same type
a {@link BindingEndPoint} is needed for disambiguation.
"/> |
| </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="<br>The first end point of a binding.
"/> |
| </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="<br>The second end point of a binding.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="BindingEndPoint"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>A binding end point is a pair of an {@link ActorContainerRef} and a {@link Port} and is used
to uniquely describe a port of a sub actor. If the actor container ref is {@code null} then
a port of the actor class itself is addressed.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="actorRef" eType="#//ActorContainerRef"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The actor reference holding the bound port or {@code null} in case of a local port.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the bound port.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="sub" eType="#//SubProtocol"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the bound sub protocol or {@code null} if not applicable.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="LayerConnection"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>Layer connections are used to connect {@link SAP}s and {@link ServiceImplementation}s.
The source is described by a {@link SAPoint} and the target by a {@link SPPoint}.
"/> |
| </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="<br>This is source point of the layer connection.
"/> |
| </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="<br>This is target point of the layer connection.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="SAPoint"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>The super class of
<ul>
 <li>{@link RefSAPoint}</li>
 <li>{@link RelaySAPoint}</li>
</ul>
"/> |
| </eAnnotations> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="RefSAPoint" eSuperTypes="#//SAPoint"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>Links from a {@link ActorContainerRef}, i.e. from a sub actor.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ActorContainerRef"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the referenced actor container ref.
"/> |
| </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="<br>Links from a relay {@link SPP} of the actor class.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="relay" eType="#//SPP"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the referenced SPP.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="SPPoint"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>Links to a {@link SPP} of an {@link ActorContainerRef}, i.e. an SPP of a sub actor
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="ref" eType="#//ActorContainerRef"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the referenced actor container ref.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="service" eType="#//SPP"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the referenced service.
"/> |
| </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="<br>A means to compose {@link SubSystemClass}es of {@link ActorClass}es. Each ref will
be turned into an actor instance of the referenced type.
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="refType" eType="#//ReferenceType"/> |
| <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="<br>If the size is >1 then this is a replicated actor.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//ActorClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<br>This is the type (i.e. actor class) of the actor ref.
"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="ReferenceType"> |
| <eLiterals name="FIXED" literal="fixed"/> |
| <eLiterals name="OPTIONAL" value="1" literal="optional"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="RoomAnnotationTargetEnum"> |
| <eLiterals name="DATA_CLASS" literal="DataClass"/> |
| <eLiterals name="ACTOR_CLASS" value="1" literal="ActorClass"/> |
| <eLiterals name="ACTOR_BEHAVIOR" value="2" literal="ActorBehavior"/> |
| <eLiterals name="PROTOCOL_CLASS" value="3" literal="ProtocolClass"/> |
| <eLiterals name="COMPOUND_PROTOCOL_CLASS" value="4" literal="CompoundProtocolClass"/> |
| <eLiterals name="SUBSYSTEM_CLASS" value="5" literal="SubSystemClass"/> |
| <eLiterals name="LOGICAL_SYSTEM_CLASS" value="6" literal="LogicalSystem"/> |
| <eLiterals name="PORT" value="7" literal="Port"/> |
| <eLiterals name="MESSAGE" value="8" literal="Message"/> |
| </eClassifiers> |
| </ecore:EPackage> |