blob: 2ab11f511f5e9cfb22efeb2704e1b6cc5d6d7f85 [file] [log] [blame]
<?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>