| <?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="comps" nsURI="comps" nsPrefix="comps"> |
| <eAnnotations source="constraints"> |
| <details key="file" value="comps.evl"/> |
| </eAnnotations> |
| <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Abstract class for named elements"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//NamedElement"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Root entity that contains components, connectors and ports"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1" |
| eType="#//Component" containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1" |
| eType="#//Connector" containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="types" upperBound="-1" |
| eType="#//Type" containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//NamedElement"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Components are behavioural blocks that communicate through input and output ports"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="inPorts" upperBound="-1" |
| eType="#//Port" containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="outPorts" upperBound="-1" |
| eType="#//Port" containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1" |
| eType="#//Component" containment="true" eOpposite="#//Component/parent"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Component" |
| eOpposite="#//Component/children"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="documentation" eType="#//Documentation" |
| containment="true" eOpposite="#//Documentation/component"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Documentation"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Free-text documentation for a component"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="component" eType="#//Component" |
| eOpposite="#//Component/documentation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//NamedElement"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Ports are used to model the input and output of components"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" upperBound="-1" |
| eType="#//Connector" eOpposite="#//Connector/to"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" upperBound="-1" |
| eType="#//Connector" eOpposite="#//Connector/from"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Connector"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Connectors connect ports of components"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//Port" eOpposite="#//Port/outgoing"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//Port" eOpposite="#//Port/incoming"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Type" eSuperTypes="#//NamedElement"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Types of ports. The name should be a valid type name in the target programming language."/> |
| </eAnnotations> |
| </eClassifiers> |
| </ecore:EPackage> |