blob: 7ca369f406e1e74b6da3674437e7976a10e9aae5 [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="simulink" nsURI="http://hu.bme.mit.massif/simulink/1.0" nsPrefix="simulink">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Simulink EPackage represents the core concepts of Matlab Simulink models with a strong focus on the structure&#xD;&#xA; and less focus on the behavior, simulation and layout specific details.&#xD;&#xA;&#xD;&#xA;The five main concepts (easily recognised by #{simulink.SimulinkElement} and its subtypes) are the following:&#xD;&#xA; * Elements on a Simulink model that can be identified and named are subtypes of #{simulink.SimulinkElement},&#xD;&#xA; which stores the identifier as a #{simulink.SimulinkReference} element.&#xD;&#xA; * The root element, #{simulink.SimulinkModel}, stores the file path and version for the original Simulink system it represents&#xD;&#xA; to help in handling changes in the represented system.&#xD;&#xA; * The Simulink model contains a hierarchy of #{simulink.Block} elements that may have properties and specify a source&#xD;&#xA; block from a Simulink library. The source block is set if the internal structure and behavior of the block is defined by a library block.&#xD;&#xA; * The communication between blocks is done through #{simulink.Port} elements, that can be either output or input. &#xD;&#xA; Each port is represented by a #{simulink.PortBlock} inside the block.&#xD;&#xA; * The output ports are connected to input ports using #{simulink.Connection} elements that can be one-to-one single connections or one-to-many multiconnections."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="SimulinkElement" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the abstract supertype of elements in Simulink systems that can be identified uniquely with a fully qualified name consisting of a name and a qualifier."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="simulinkRef" eType="#//IdentifierReference"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The value is computed from the name feature of the #{simulink.SimulinkReference} stored in simulinkRef."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.name"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Block" eSuperTypes="#//SimulinkElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the basic building block of Simulink systems. Each block has properties, ports and&#xD;&#xA; can refer to a source block that was used as the template from a library to create the element.&#xD;&#xA;&#xD;&#xA;The properties are not a map, so the block may have multiple properties with the same name, or even same name-value pair.&#xD;&#xA;&#xD;&#xA;The different type of ports are accessible through computed filtered lists."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//Parameter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//Port" containment="true" eOpposite="#//Port/container"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="#//Trigger"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The values are computed by filtering Trigger ports from the values of the ports feature."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.trigger"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="enabler" eType="#//Enable"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The values are computed by filtering Enable ports from the values of the ports feature."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.enabler"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inports" upperBound="-1"
eType="#//InPort" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The values are computed by filtering Inports from the values of the ports feature."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.inports"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="outports" upperBound="-1"
eType="#//OutPort" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The values are computed by filtering Outports from the values of the ports feature."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.outports"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//SubSystem"
eOpposite="#//SubSystem/subBlocks"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceBlock" eType="#//Block"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The value of the reference is computed by finding the element with the same name and qualifier as stored in the sourceBlockRef.&#xD;&#xA;&#xD;&#xA;b{Validation}&#xD;&#xA; * WARN: Cannot find block specified by source block reference."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.sourceBlock"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceBlockRef" eType="#//LibraryLinkReference"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//SimulinkElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the abstract supertype of block ports that are used for allowing data communication and signaling between blocks.&#xA;&#xA;The properties are not a map, so the port may have multiple properties with the same name, or even same name-value pair."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="container" eType="#//Block"
eOpposite="#//Block/ports"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="portBlock" eType="#//PortBlock"
eOpposite="#//PortBlock/port"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//Parameter" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Parameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents properties of #{simulink.Block} elements. Each property has a name, a type and a value.&#xD;&#xA;The value is stored as a character string but is validated based on the type.&#xA;It also stores a readOnly flag about the parameter."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<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="b{Validation}&#xD;&#xA; * ERROR: Value type is not compatible with property type."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InPort" eSuperTypes="#//Port">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents an inport of a #{simulink.Block}.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/inport.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="connection" eType="#//SingleConnection"
eOpposite="#//SingleConnection/to"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OutPort" eSuperTypes="#//Port">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents an outport of a #{simulink.Block}.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/outport.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="connection" eType="#//Connection"
containment="true" eOpposite="#//Connection/from"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connection" abstract="true" eSuperTypes="#//SimulinkElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the connection between #{simulink.Block} elements in order to transfer data from an outport to one or more inports."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//OutPort"
eOpposite="#//OutPort/connection"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lineName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//InPort">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a trigger port of a #{simulink.Block}.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/trigger.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="triggerType" eType="#//TriggerType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="statesWhenEnabling" eType="#//EnableStates"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Enable" eSuperTypes="#//InPort">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents an enable port of a #{simulink.Block}.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/enable.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="statesWhenEnabling" eType="#//EnableStates"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BusSelector" eSuperTypes="#//BusSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a bus selector block that separates the signals from the bus received on its inport into its outports.&#xD;&#xA;Since it is possible to select only some of the signals and even embedded signals from a bus inside the bus,&#xD;&#xA; mapping entries (#{simulink.BusSignalMapping}) are used to indicate which outport (mappingTo) selects which signals originating from a given outport (mappingFrom).&#xD;&#xA;&#xD;&#xA;The outputAsBus attribute is true if the selected signals are bundled into a bus and placed on a single outport.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/busselector.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappings" upperBound="-1"
eType="#//BusSignalMapping" containment="true" eOpposite="#//BusSignalMapping/selector"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="outputAsBus" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="busCreator" eType="#//BusSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This reference points to the creator of the incoming bus signal.&#xD;&#xA; Either a bus creator or a bus selector with outputAsBus = true.&#xD;&#xA; Always determined as backward navigation on signals is deterministic."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BusCreator" eSuperTypes="#//BusSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a bus creator block that bundles the signals on its inports into a bus on its outport.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/buscreator.html}"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Goto" eSuperTypes="#//VirtualBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Goto block passes its input to its corresponding #{simulink.From} blocks.&#xD;&#xA; From and #{simulink.Goto} blocks allow you to pass a signal from one block to another without actually connecting them.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/goto.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="fromBlocks" upperBound="-1"
eType="#//From" eOpposite="#//From/gotoBlock"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="tagVisibility" eType="#//TagVisibility"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="gotoTag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VirtualBlock" abstract="true" eSuperTypes="#//Block">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the abstract supertype of blocks that do not explicitly affect the simulation of the Simulink system.&#xD;&#xA;These blocks are called virtual and are added as syntactic sugar, for example #{simulink.Goto} and #{simulink.From} can be used &#xD;&#xA;instead of a direct #{simulink.Connection} to connect blocks.&#xD;&#xA;"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="From" eSuperTypes="#//VirtualBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The From block accepts a signal from a corresponding #{simulink.Goto} block, then passes it as output.&#xD;&#xA; The data type of the output is the same as that of the input from the Goto block.&#xD;&#xA; From and Goto blocks allow you to pass a signal from one block to another without actually connecting them.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/from.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="gotoBlock" eType="#//Goto"
eOpposite="#//Goto/fromBlocks"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SimulinkModel" eSuperTypes="#//SimulinkElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the root of an imported Simulink system that contains blocks. The version and file path informations are stored to allow change management. The library attribute stores whether the model was a library or a regular model in Matlab."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="version" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="contains" upperBound="-1"
eType="#//Block" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="file" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="library" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MultiConnection" eSuperTypes="#//Connection">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a connection between a single #{simulink.OutPort} and multiple #{simulink.InPort}.&#xD;&#xA;Each inport is connected by a #{simulink.SingleConnection} contained by this connection."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
eType="#//SingleConnection" containment="true" eOpposite="#//SingleConnection/parent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleConnection" eSuperTypes="#//Connection">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a simple connections between a single #{simulink.OutPort} and a single #{simulink.InPort}.&#xD;&#xA;The outport can be identified either through the from reference or through the parent #{simulink.MultiConnection}."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//MultiConnection"
eOpposite="#//MultiConnection/connections"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="to" eType="#//InPort" eOpposite="#//InPort/connection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PortBlock" abstract="true" eSuperTypes="#//VirtualBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents the abstract supertype of blocks that represent ports of a subsystem."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port" eOpposite="#//Port/portBlock"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OutPortBlock" eSuperTypes="#//PortBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a port block of a #{simulink.OutPort} with an inport that can be used by blocks inside the subsystem.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/outport.html}"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InPortBlock" eSuperTypes="#//PortBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a port block of a #{simulink.InPort} with an outport that can be used by blocks inside the subsystem.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/inport.html}"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TriggerBlock" eSuperTypes="#//InPortBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a port block of a #{simulink.Trigger} port with an outport that can be used by blocks inside the subsystem.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/trigger.html}"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EnableBlock" eSuperTypes="#//InPortBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a port block of a #{simulink.Enable} port with an outport that can be used by blocks inside the subsystem.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/enable.html}"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SimulinkReference" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This abstract EClass represents a reference for a Simulink element. The identifier is a fully qualified&#xD;&#xA; name constructed from a qualifier (the fully qualified name of the parent of the element) and a name.&#xD;&#xA;Since a #{simulink.SimulinkElement} can be identified based on its fully qualified name, it is possible&#xD;&#xA; to reference an element by cloning and storing the reference instead of a direct link to the element itself."/>
</eAnnotations>
<eOperations name="getFQN" 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(qualifier != null)&#xD;&#xA;&#x9;return qualifier+&quot;/&quot;+name;&#xD;&#xA;else &#xD;&#xA;&#x9;return name;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//SimulinkElement"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GotoTagVisibility" eSuperTypes="#//VirtualBlock">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Goto Tag Visibility block defines the accessibility of #{simulink.Goto} block tags that have scoped visibility.&#xD;&#xA; The tag specified as the Goto tag parameter is accessible by #{simulink.From} blocks in the same subsystem that contains the Goto Tag Visibility block and in subsystems below it in the model hierarchy.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/gototagvisibility.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="gotoBlock" eType="#//Goto"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SubSystem" eSuperTypes="#//Block">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a Simulink block that may contain subblocks that specify its internal structure and behavior.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/subsystem.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="subBlocks" upperBound="-1"
eType="#//Block" containment="true" eOpposite="#//Block/parent"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="tag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="EnableStates">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EEnum represents the possible settings of a #{simulink.Enable} port for specifying what happens to the states of blocks in the enabled system upon disabling.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/enable.html}"/>
</eAnnotations>
<eLiterals name="Held"/>
<eLiterals name="Reset" value="1"/>
<eLiterals name="Inherit" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TriggerType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EEnum represents the possible events that can trigger the execution of a subsystem with a #{simulink.Trigger} port.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/trigger.html}"/>
</eAnnotations>
<eLiterals name="Rising"/>
<eLiterals name="Falling" value="1"/>
<eLiterals name="Either" value="2"/>
<eLiterals name="FunctionCall" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TagVisibility">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Tag Visibility is a parameter of #{simulink.Goto} blocks to determine the location of #{simulink.From} blocks that access the signal.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/goto.html}"/>
</eAnnotations>
<eLiterals name="Local"/>
<eLiterals name="Scoped" value="1"/>
<eLiterals name="Global" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModelReference" eSuperTypes="#//Block">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a #{simulink.SimulinkModel} included as a block in this model.&#xD;&#xA;&#xD;&#xA;See @{http://www.mathworks.com/help/simulink/slref/model.html}"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="referencedModel" eType="#//SimulinkModel"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The value of the reference is computed by finding the model with the same name and qualifier as stored in the modelRef.&#xD;&#xA;&#xD;&#xA;b{Validation}&#xD;&#xA; * WARN: Cannot find model specified by model reference."/>
</eAnnotations>
<eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
<details key="patternFQN" value="hu.bme.mit.massif.models.simulink.derived.referencedModel"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="modelRef" eType="#//IdentifierReference"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BusSpecification" abstract="true" eSuperTypes="#//Block">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass is an abstract supertype for blocks that handle bus signals. A bus signal is used for bundling a set of signals &#xD;&#xA;into one signal to reduce the number of ports and connections required in the model."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BusSignalMapping">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a signal mapping entry in the #{simulink.BusSelector} to define which signals are selected from a bus."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="selector" eType="#//BusSelector"
eOpposite="#//BusSelector/mappings"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingFrom" eType="#//OutPort">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="b{Validation}&#xD;&#xA; * ERROR: Selected port is not an outport of a signal bundled in the bus&#xD;&#xA; * ERROR: Multiple mappings from the same outport"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingTo" eType="#//OutPort">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="b{Validation}&#xD;&#xA; * ERROR: Selected port is not an outport of selector&#xD;&#xA; * ERROR: Multiple mappings to the same outport"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mappingPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="incomplete" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A true value indicates that the mappingFrom OutPort is not the real source of the selected signal, when the actual source is not part of the model."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LibraryLinkReference" eSuperTypes="#//SimulinkReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This is a specific class used for representing links to Simulink elements."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="disabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Disabled links mean that the block was originally copied from a library but it was modified later."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IdentifierReference" eSuperTypes="#//SimulinkReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This is a specific class used as a unique identifier for Simulink elements."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//OutPort">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This EClass represents a stateport of a #{simulink.Block}.&#xA;&#xA;See @{https://www.mathworks.com/help/simulink/slref/integrator.html#f7-890704.f7-1513490}"/>
</eAnnotations>
</eClassifiers>
</ecore:EPackage>