blob: c4dbcea58236e1e0ceb0ebfdd276fc3240aa7c4f [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="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.6" nsPrefix="am">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
<details key="modelName" value="Amalthea"/>
<details key="prefix" value="Amalthea"/>
<details key="editDirectory" value="/org.eclipse.app4mc.amalthea.model.edit/src-gen"/>
<details key="editorDirectory" value="/org.eclipse.app4mc.amalthea.model.editor/src-gen"/>
<details key="rootExtendsClass" value="org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedEObjectImpl"/>
<details key="providerRootExtendsClass" value="org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedItemProviderAdapter"/>
<details key="creationIcons" value="false"/>
<details key="forceOverwrite" value="true"/>
<details key="creationSubmenus" value="true"/>
<details key="publicationLocation" value="org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml"/>
<details key="loadInitialization" value="false"/>
<details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA; Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
<details key="decoration" value="Live"/>
<details key="collapseAllAction" value="true"/>
<details key="expandAllAction" value="true"/>
<details key="autoExpandProperties" value="1"/>
<details key="eclipsePlatformVersion" value="Photon"/>
<details key="basePackage" value="org.eclipse.app4mc.amalthea"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="Amalthea" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
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="get" value="return &quot;0.9.6&quot;;"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="commonElements" eType="#//CommonElements"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="swModel" eType="#//SWModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="hwModel" eType="#//HWModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="osModel" eType="#//OSModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="stimuliModel" eType="#//StimuliModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eventModel" eType="#//EventModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="constraintsModel" eType="#//ConstraintsModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="propertyConstraintsModel"
eType="#//PropertyConstraintsModel" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingModel" eType="#//MappingModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentsModel" eType="#//ComponentsModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="configModel" eType="#//ConfigModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="measurementModel" eType="#//MeasurementModel"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CommonElements" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="coreClassifiers" upperBound="-1"
eType="#//CoreClassifier" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassifiers" upperBound="-1"
eType="#//MemoryClassifier" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BaseObject" abstract="true" eSuperTypes="#//IAnnotatable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Base classes to be used to provide common functionality for all objects.&#xA;Needs to be extended by other classes."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReferableObject" abstract="true" eSuperTypes="#//IReferable"/>
<eClassifiers xsi:type="ecore:EClass" name="ReferableBaseObject" abstract="true"
eSuperTypes="#//IAnnotatable #//IReferable"/>
<eClassifiers xsi:type="ecore:EClass" name="IAnnotatable" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IAnnotatable: Possibility to store custom properties on elements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="customProperties" upperBound="-1"
eType="#//CustomProperty" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ITaggable" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ITaggable: Possibility to add tags to an elements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="INamed" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="INamed: Name attribute"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Main"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IReferable" abstract="true" interface="true"
eSuperTypes="#//INamed">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IReferable: Computed ID for name based references"/>
</eAnnotations>
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
<details key="body" value="return &quot;&quot;;"/>
</eAnnotations>
</eOperations>
<eOperations name="encode" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}"/>
</eAnnotations>
<eParameters name="str" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueName" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
volatile="true" transient="true" derived="true" iD="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IDisplayName" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IDescription" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="description" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyMultiLine" value="true"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//ReferableBaseObject #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A tag for processes, runnables, events and labels"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="tagType" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="taggedObjects" upperBound="-1"
eType="#//ITaggable" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to the this tag.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iTaggable_Tags = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getITaggable_Tags();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ITaggable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTag_TaggedObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iTaggable_Tags)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
<eLiterals name="_undefined_"/>
<eLiterals name="EQUAL"/>
<eLiterals name="NOT_EQUAL"/>
<eLiterals name="LESS_THAN"/>
<eLiterals name="GREATER_THAN"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//ReferableBaseObject #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Classifiers for hardware properties"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CoreClassifier" eSuperTypes="#//Classifier"/>
<eClassifiers xsi:type="ecore:EClass" name="MemoryClassifier" eSuperTypes="#//Classifier"/>
<eClassifiers xsi:type="ecore:EClass" name="TransmissionPolicy">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Data transmission details for communication (e.g. LabelAccesses)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="chunkSize" eType="#//DataSize"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="chunkProcessingTicks" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="transmitRatio" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Quantity" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Abstract class for Quantities (value + unit)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TimeUnit">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Time units (enumeration of available units)"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="s"/>
<eLiterals name="ms"/>
<eLiterals name="us"/>
<eLiterals name="ns"/>
<eLiterals name="ps"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeComparable" instanceTypeName="java.lang.Comparable&lt;org.eclipse.app4mc.amalthea.model.Time>"
abstract="true" interface="true"/>
<eClassifiers xsi:type="ecore:EClass" name="Time" eSuperTypes="#//Quantity #//Value #//TimeComparable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General time class to define time value and unit."/>
</eAnnotations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
</eAnnotations>
</eOperations>
<eOperations name="compareTo" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareTimes(this, t);"/>
</eAnnotations>
<eParameters name="t" unique="false" eType="#//Time"/>
</eOperations>
<eOperations name="adjustUnit" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.adjustTimeUnit(this);"/>
</eAnnotations>
</eOperations>
<eOperations name="add" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.addTime(this, t);"/>
</eAnnotations>
<eParameters name="t" unique="false" eType="#//Time"/>
</eOperations>
<eOperations name="subtract" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.subtractTime(this, t);"/>
</eAnnotations>
<eParameters name="t" unique="false" eType="#//Time"/>
</eOperations>
<eOperations name="multiply" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);"/>
</eAnnotations>
<eParameters name="v" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
</eOperations>
<eOperations name="multiply" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);"/>
</eAnnotations>
<eParameters name="v" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</eOperations>
<eOperations name="divide" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.divideTime(this, t);"/>
</eAnnotations>
<eParameters name="t" unique="false" eType="#//Time"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//TimeUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="FrequencyUnit">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Frequency units (enumeration of available units)"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="Hz"/>
<eLiterals name="kHz"/>
<eLiterals name="MHz"/>
<eLiterals name="GHz"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Frequency" eSuperTypes="#//Quantity">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General frequency class to define frequency value and unit"/>
</eAnnotations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="double _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Double%>.valueOf(_value) + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="#//NonNegativeDouble"
defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//FrequencyUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="VoltageUnit">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Voltage units (enumeration of available units)"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="uV"/>
<eLiterals name="mV"/>
<eLiterals name="V"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Voltage" eSuperTypes="#//Quantity">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General voltage class to define voltage value and unit"/>
</eAnnotations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="double _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Double%>.valueOf(_value) + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//VoltageUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DataSizeUnit">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Data size units (enumeration of available units)"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="bit"/>
<eLiterals name="kbit"/>
<eLiterals name="Mbit"/>
<eLiterals name="Gbit"/>
<eLiterals name="Tbit"/>
<eLiterals name="Kibit"/>
<eLiterals name="Mibit"/>
<eLiterals name="Gibit"/>
<eLiterals name="Tibit"/>
<eLiterals name="B"/>
<eLiterals name="kB"/>
<eLiterals name="MB"/>
<eLiterals name="GB"/>
<eLiterals name="TB"/>
<eLiterals name="KiB"/>
<eLiterals name="MiB"/>
<eLiterals name="GiB"/>
<eLiterals name="TiB"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataSize" eSuperTypes="#//Quantity">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General data size class to define size (value and unit)"/>
</eAnnotations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
</eAnnotations>
</eOperations>
<eOperations name="getNumberBits" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Convenience methods to retrieve the size in Bits and Bytes"/>
<details key="body" value="long _xblockexpression = (long) 0;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;&#x9;boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.BIT);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return this.getValue().longValue();&#xA;&#x9;}&#xA;&#x9;final &lt;%java.math.BigInteger%> bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this);&#xA;&#x9;long _xifexpression = (long) 0;&#xA;&#x9;if ((bits == null))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (-1L);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = bits.longValue();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
</eAnnotations>
</eOperations>
<eOperations name="getNumberBytes" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="long _xblockexpression = (long) 0;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;&#x9;boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.B);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return this.getValue().longValue();&#xA;&#x9;}&#xA;&#x9;final &lt;%java.math.BigInteger%> bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this);&#xA;&#x9;long _xifexpression = (long) 0;&#xA;&#x9;if ((bits == null))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (-1L);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;long _longValue = bits.longValue();&#xA;&#x9;&#x9;long _divide = (_longValue / 8);&#xA;&#x9;&#x9;_xifexpression = &lt;%java.lang.Double%>.valueOf(&lt;%java.lang.Math%>.ceil(_divide)).longValue();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//DataSizeUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DataRateUnit">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Data rate units (enumeration of available units)"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="bitPerSecond"/>
<eLiterals name="kbitPerSecond"/>
<eLiterals name="MbitPerSecond"/>
<eLiterals name="GbitPerSecond"/>
<eLiterals name="TbitPerSecond"/>
<eLiterals name="KibitPerSecond"/>
<eLiterals name="MibitPerSecond"/>
<eLiterals name="GibitPerSecond"/>
<eLiterals name="TibitPerSecond"/>
<eLiterals name="BPerSecond"/>
<eLiterals name="kBPerSecond"/>
<eLiterals name="MBPerSecond"/>
<eLiterals name="GBPerSecond"/>
<eLiterals name="TBPerSecond"/>
<eLiterals name="KiBPerSecond"/>
<eLiterals name="MiBPerSecond"/>
<eLiterals name="GiBPerSecond"/>
<eLiterals name="TiBPerSecond"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataRateComparable" instanceTypeName="java.lang.Comparable&lt;org.eclipse.app4mc.amalthea.model.DataRate>"
abstract="true" interface="true"/>
<eClassifiers xsi:type="ecore:EClass" name="DataRate" eSuperTypes="#//Quantity #//DataRateComparable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General data rate class to define rate (value and unit)"/>
</eAnnotations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral().replace(&quot;PerSecond&quot;, &quot;/s&quot;);&#xA;}&#xA;return (_plus + _xifexpression);"/>
</eAnnotations>
</eOperations>
<eOperations name="compareTo" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareDataRates(this, rate);"/>
</eAnnotations>
<eParameters name="rate" unique="false" eType="#//DataRate"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//DataRateUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CustomProperty" instanceClassName="java.util.Map$Entry">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="custom property container for map"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Value"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Value" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Abstract generalization of a value entry."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ListObject" eSuperTypes="#//Value">
<eStructuralFeatures xsi:type="ecore:EReference" name="values" upperBound="-1"
eType="#//Value" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyMultiLine" value="true"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BigIntegerObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReferenceObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using object reference as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//IReferable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IntegerObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype integer as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LongObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype long as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FloatObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype float as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat" defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DoubleObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype double as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BooleanObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype boolean as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NumericStatistic" abstract="true" interface="true"/>
<eClassifiers xsi:type="ecore:EClass" name="MinAvgMaxStatistic" eSuperTypes="#//NumericStatistic">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Statistic to provide capabilities for min, max and avg"/>
</eAnnotations>
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="min" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="avg" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"
defaultValueLiteral="0f"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="max" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleValueStatistic" eSuperTypes="#//NumericStatistic">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"
defaultValueLiteral="0f"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SamplingType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of sampling"/>
</eAnnotations>
<eLiterals name="default"/>
<eLiterals name="BestCase"/>
<eLiterals name="WorstCase"/>
<eLiterals name="AverageCase"/>
<eLiterals name="CornerCase"/>
<eLiterals name="Uniform"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ITimeDeviation" abstract="true" interface="true">
<eOperations name="getLowerBound" unique="false" eType="#//Time"/>
<eOperations name="getUpperBound" unique="false" eType="#//Time"/>
<eOperations name="getAverage" unique="false" eType="#//Time"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeInterval" abstract="true">
<eOperations name="getAverage" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
</eAnnotations>
</eOperations>
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="lowerBound" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeConstant" eSuperTypes="#//ITimeDeviation">
<eOperations name="getLowerBound" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return this.getValue();"/>
</eAnnotations>
</eOperations>
<eOperations name="getUpperBound" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return this.getValue();"/>
</eAnnotations>
</eOperations>
<eOperations name="getAverage" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return this.getValue();"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeHistogram" eSuperTypes="#//ITimeDeviation">
<eOperations name="getLowerBound" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_Time(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eOperations name="getUpperBound" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_Time(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eOperations name="getAverage" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_Time(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//TimeHistogramEntry" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeHistogramEntry" eSuperTypes="#//TimeInterval">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="occurrences" unique="false"
lowerBound="1" eType="#//PositiveLong" defaultValueLiteral="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BoundedTimeDistribution" abstract="true"
eSuperTypes="#//TimeInterval #//ITimeDeviation"/>
<eClassifiers xsi:type="ecore:EClass" name="TruncatedTimeDistribution" abstract="true"
eSuperTypes="#//ITimeDeviation">
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="lowerBound" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeBoundaries" eSuperTypes="#//BoundedTimeDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the upper and lower bounds of a value interval without defining the distribution"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="samplingType" unique="false"
eType="#//SamplingType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeStatistics" eSuperTypes="#//BoundedTimeDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="average" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeUniformDistribution" eSuperTypes="#//BoundedTimeDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Uniform distribution"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeGaussDistribution" eSuperTypes="#//TruncatedTimeDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Gauss distribution"/>
</eAnnotations>
<eOperations name="getAverage" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), this.getMean(), this.getSd());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="mean" lowerBound="1" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sd" lowerBound="1" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeWeibullEstimatorsDistribution" eSuperTypes="#//BoundedTimeDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="average" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeBetaDistribution" eSuperTypes="#//BoundedTimeDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Beta distribution"/>
</eAnnotations>
<eOperations name="getAverage" unique="false" eType="#//Time">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="beta" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IDiscreteValueDeviation" abstract="true"
interface="true">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueInterval" abstract="true">
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
</eAnnotations>
</eOperations>
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueConstant" eSuperTypes="#//IDiscreteValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%java.lang.Long%>.valueOf(this.getValue());"/>
</eAnnotations>
</eOperations>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%java.lang.Long%>.valueOf(this.getValue());"/>
</eAnnotations>
</eOperations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%java.lang.Double%>.valueOf(&lt;%java.lang.Long%>.valueOf(this.getValue()).doubleValue());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueHistogram" eSuperTypes="#//IDiscreteValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_DV(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_DV(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_DV(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//DiscreteValueHistogramEntry" containment="true"
resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueHistogramEntry" eSuperTypes="#//DiscreteValueInterval">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="occurrences" unique="false"
lowerBound="1" eType="#//PositiveLong" defaultValueLiteral="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BoundedDiscreteValueDistribution" abstract="true"
eSuperTypes="#//DiscreteValueInterval #//IDiscreteValueDeviation"/>
<eClassifiers xsi:type="ecore:EClass" name="TruncatedDiscreteValueDistribution"
abstract="true" eSuperTypes="#//IDiscreteValueDeviation">
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueBoundaries" eSuperTypes="#//BoundedDiscreteValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the upper and lower bounds of a value interval without defining the distribution"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="samplingType" unique="false"
eType="#//SamplingType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueStatistics" eSuperTypes="#//BoundedDiscreteValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueUniformDistribution" eSuperTypes="#//BoundedDiscreteValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Uniform distribution"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueGaussDistribution" eSuperTypes="#//TruncatedDiscreteValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Gauss distribution"/>
</eAnnotations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getMean()), &lt;%java.lang.Double%>.valueOf(this.getSd()));"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sd" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueWeibullEstimatorsDistribution"
eSuperTypes="#//BoundedDiscreteValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueBetaDistribution" eSuperTypes="#//BoundedDiscreteValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Beta distribution"/>
</eAnnotations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="beta" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IContinuousValueDeviation" abstract="true"
interface="true">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueInterval" abstract="true">
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
</eAnnotations>
</eOperations>
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueConstant" eSuperTypes="#//IContinuousValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
</eAnnotations>
</eOperations>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
</eAnnotations>
</eOperations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueHistogram" eSuperTypes="#//IContinuousValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_CV(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_CV(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_CV(this.getEntries());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//ContinuousValueHistogramEntry" containment="true"
resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueHistogramEntry" eSuperTypes="#//ContinuousValueInterval">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="occurrences" unique="false"
lowerBound="1" eType="#//PositiveLong" defaultValueLiteral="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BoundedContinuousValueDistribution"
abstract="true" eSuperTypes="#//ContinuousValueInterval #//IContinuousValueDeviation"/>
<eClassifiers xsi:type="ecore:EClass" name="TruncatedContinuousValueDistribution"
abstract="true" eSuperTypes="#//IContinuousValueDeviation">
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueBoundaries" eSuperTypes="#//BoundedContinuousValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the upper and lower bounds of a value interval without defining the distribution"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="samplingType" unique="false"
eType="#//SamplingType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueStatistics" eSuperTypes="#//BoundedContinuousValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueUniformDistribution"
eSuperTypes="#//BoundedContinuousValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Uniform distribution"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueGaussDistribution" eSuperTypes="#//TruncatedContinuousValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Gauss distribution"/>
</eAnnotations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getMean()), &lt;%java.lang.Double%>.valueOf(this.getSd()));"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sd" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueWeibullEstimatorsDistribution"
eSuperTypes="#//BoundedContinuousValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueBetaDistribution" eSuperTypes="#//BoundedContinuousValueDistribution">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Beta distribution"/>
</eAnnotations>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="beta" unique="false" lowerBound="1"
eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Mode" abstract="true" eSuperTypes="#//ReferableBaseObject"/>
<eClassifiers xsi:type="ecore:EClass" name="NumericMode" eSuperTypes="#//Mode"/>
<eClassifiers xsi:type="ecore:EClass" name="EnumMode" eSuperTypes="#//Mode">
<eOperations name="getLiteral" unique="false" eType="#//ModeLiteral">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, literal));&#xA;&#x9;}&#xA;};&#xA;return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(this.getLiterals(), _function);"/>
</eAnnotations>
<eParameters name="literal" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
eType="#//ModeLiteral" containment="true" resolveProxies="false" eOpposite="#//ModeLiteral/containingMode"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLiteral" eSuperTypes="#//ReferableBaseObject">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;literal>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getName();&#xA;}&#xA;return _xifexpression;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingMode" eType="#//EnumMode"
changeable="false" eOpposite="#//EnumMode/literals">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="Address" instanceClassName="long">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Hardware Address (long; specified as hexadecimal value)"/>
<details key="create" value="&lt;%java.lang.Long%> _xifexpression = null;&#xA;if ((it != null))&#xA;{&#xA;&#x9;&lt;%java.lang.Long%> _xifexpression_1 = null;&#xA;&#x9;if ((it.startsWith(&quot;-&quot;) || it.startsWith(&quot;+&quot;)))&#xA;&#x9;{&#xA;&#x9;&#x9;throw new &lt;%java.lang.NumberFormatException%>(&quot;Sign character&quot;);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression_1 = &lt;%java.lang.Long%>.decode(it);&#xA;&#x9;}&#xA;&#x9;_xifexpression = _xifexpression_1;&#xA;}&#xA;return (_xifexpression).longValue();"/>
<details key="convert" value="&lt;%java.lang.String%> _hexString = &lt;%java.lang.Long%>.toHexString(it);&#xA;return (&quot;0x&quot; + _hexString);"/>
</eAnnotations>
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="PositiveInt" instanceClassName="int">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minExclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="PositiveLong" instanceClassName="long">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minExclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="PositiveDouble" instanceClassName="double">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minExclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="NonNegativeInt" instanceClassName="int">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="NonNegativeLong" instanceClassName="long">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="NonNegativeDouble" instanceClassName="double">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
eType="#//Component" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
eType="#//System" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ISystem" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstances" upperBound="-1"
eType="#//ComponentInstance" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
eType="#//Connector" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="groundedPorts" upperBound="-1"
eType="#//QualifiedPort" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
eType="#//QualifiedPort" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.getInnerPorts(this);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingComponent" eType="#//Component"
changeable="false" eOpposite="#//Component/ports">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//Port" containment="true" resolveProxies="false" eOpposite="#//Port/containingComponent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
eType="#//AbstractProcess"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
eType="#//Semaphore"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
eType="#//OsEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Composite" eSuperTypes="#//Component #//ISystem"/>
<eClassifiers xsi:type="ecore:EClass" name="System" eSuperTypes="#//ReferableBaseObject #//ITaggable #//ISystem"/>
<eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Component"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//BaseObject #//INamed #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourcePort" eType="#//QualifiedPort"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetPort" eType="#//QualifiedPort"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="QualifiedPort" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="#//ComponentInstance"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InterfacePort" eSuperTypes="#//Port">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceName" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="InterfaceKind">
<eLiterals name="_undefined_"/>
<eLiterals name="provides"/>
<eLiterals name="requires"/>
<eLiterals name="provides_requires"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConfigModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventsToTrace" upperBound="-1"
eType="#//EventConfig" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventConfig" eSuperTypes="#//BaseObject #//INamed">
<eStructuralFeatures xsi:type="ecore:EReference" name="event" lowerBound="1" eType="#//EntityEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConstraintsModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChains" upperBound="-1"
eType="#//EventChain" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="timingConstraints" upperBound="-1"
eType="#//TimingConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="affinityConstraints" upperBound="-1"
eType="#//AffinityConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableSequencingConstraints"
upperBound="-1" eType="#//RunnableSequencingConstraint" containment="true"
resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataAgeConstraints" upperBound="-1"
eType="#//DataAgeConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="requirements" upperBound="-1"
eType="#//Requirement" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataCoherencyGroups" upperBound="-1"
eType="#//DataCoherencyGroup" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataStabilityGroups" upperBound="-1"
eType="#//DataStabilityGroup" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="physicalSectionConstraints"
upperBound="-1" eType="#//PhysicalSectionConstraint" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RunnableOrderType">
<eLiterals name="_undefined_"/>
<eLiterals name="successor"/>
<eLiterals name="immediateSuccessorStartSequence"/>
<eLiterals name="immediateSuccessorAnySequence"/>
<eLiterals name="immediateSuccessorEndSequence"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableSequencingConstraint" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="orderType" unique="false"
eType="#//RunnableOrderType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableGroups" lowerBound="2"
upperBound="-1" eType="#//RunnableEntityGroup" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processScope" upperBound="-1"
eType="#//AbstractProcess"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AffinityConstraint" abstract="true"
eSuperTypes="#//ReferableBaseObject"/>
<eClassifiers xsi:type="ecore:EClass" name="SeparationConstraint" abstract="true"
eSuperTypes="#//AffinityConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all separation constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PairingConstraint" abstract="true" eSuperTypes="#//AffinityConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all pairing constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessConstraint" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all process related constraint&#xA;The target describes the entity on which the processes can be mapped"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//ProcessConstraintTarget"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableConstraint" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all runnable related constraint&#xA;The target describes the entity on which the runnables can be mapped"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//RunnableConstraintTarget"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataConstraint" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all data related constraint&#xA;The target describes the entity on which the data can be mapped"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//DataConstraintTarget"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableSeparationConstraint" eSuperTypes="#//SeparationConstraint #//RunnableConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A runnable-separation-constraint&#xA;groups describes the runnable-groups that should be separated from each other on the target&#xA;if there is only one group then this means that the runnables of this group are not allowed to be executed on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
upperBound="2" eType="#//RunnableGroup" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessSeparationConstraint" eSuperTypes="#//SeparationConstraint #//ProcessConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A process-separation-constraint&#xA;groups describes the process-groups that should be separated from each other on the target&#xA;if there is only one group then this means that the processes of this group are not allowed to be executed on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
upperBound="2" eType="#//ProcessGroup" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataSeparationConstraint" eSuperTypes="#//SeparationConstraint #//DataConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A data-separation-constraint&#xA;groups describes the label-groups that should be separated from each other on the target&#xA;if there is only one group then this means that the label of this group is not allowed to be executed on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
upperBound="2" eType="#//LabelEntityGroup" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnablePairingConstraint" eSuperTypes="#//PairingConstraint #//RunnableConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A runnable-pairing-constraint&#xA;runnables describes the group of runnables that should be paired on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" lowerBound="1" eType="#//RunnableGroup"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessPairingConstraint" eSuperTypes="#//PairingConstraint #//ProcessConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A process-pairing-constraint&#xA;processes describes the group of processes that should be paired on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" lowerBound="1" eType="#//ProcessGroup"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataPairingConstraint" eSuperTypes="#//PairingConstraint #//DataConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A data-pairing-constraint&#xA;labels describes the group of labels that should be paired on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" lowerBound="1" eType="#//LabelGroup"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableConstraintTarget" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all possible targets for runnable-constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessConstraintTarget" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all possible targets for process-constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataConstraintTarget" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all possible targets for data-constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TargetMemory" eSuperTypes="#//DataConstraintTarget #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A memory target description&#xA;A memory can be a target for data-constraints&#xA;memories: the reference to zero or more Memories. If this list is empty, the target stands for all memories!"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="memories" upperBound="-1"
eType="#//Memory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TargetCore" eSuperTypes="#//RunnableConstraintTarget #//ProcessConstraintTarget #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A core target description&#xA;A core can be a target for runnable-constraints, process-constraints and scheduler-constraints&#xA;cores: the reference to zero or more Cores. If this list is empty, the target stands for all cores!"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="cores" upperBound="-1"
eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TargetScheduler" eSuperTypes="#//RunnableConstraintTarget #//ProcessConstraintTarget #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A scheduler target description&#xA;A scheduler can be a target for runnable-constraints and process-constraints&#xA;schedulers: the reference to zero or more Schedulers. If this list is empty, the target stands for all schedulers!"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulers" upperBound="-1"
eType="#//Scheduler"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelGroup" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for a group of labels that can be paired or separated by a runnable-constraint"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableGroup" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for a group of runnables that can be paired or separated by a runnable-constraint"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessGroup" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for a group of processes that can be paired or separated by a process-constraint"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelEntityGroup" eSuperTypes="#//LabelGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group of labels that can be paired or separated by a data-constraint"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" lowerBound="1"
upperBound="-1" eType="#//Label"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableEntityGroup" eSuperTypes="#//RunnableGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group of runnables that can be paired or separated by a runnable-constraint"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnables" lowerBound="1"
upperBound="-1" eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessEntityGroup" eSuperTypes="#//ProcessGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group of processes that can be paired or separated by a process-constraint"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="processes" lowerBound="1"
upperBound="-1" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TagGroup" eSuperTypes="#//RunnableGroup #//ProcessGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group that contains only a tag and groups all objects that are marked with this tag&#xA;This can be runnables or processes"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="tag" lowerBound="1" eType="#//Tag"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractEventChain" abstract="true"
eSuperTypes="#//BaseObject #//INamed">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes an event chain which must have a minimum of two events (stimulus and response)&#xA;If there are more events the event chain have to be divided into segments. Each segment is another event chain.&#xA;Alternative event paths are contained in strands.&#xA;stimulus: Beginning of chain&#xA;response: End of chain&#xA;segments: Sub event chains&#xA;strands: alternative event paths"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="stimulus" lowerBound="1"
eType="#//Event"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="response" lowerBound="1"
eType="#//Event"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
eType="#//EventChainItem" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="itemType" unique="false"
eType="#//EventChainItemType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="minItemsCompleted" unique="false"
eType="#//PositiveInt" defaultValueLiteral="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="EventChainItemType">
<eLiterals name="_undefined_"/>
<eLiterals name="sequence"/>
<eLiterals name="parallel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChain" eSuperTypes="#//AbstractEventChain #//IReferable"/>
<eClassifiers xsi:type="ecore:EClass" name="SubEventChain" eSuperTypes="#//AbstractEventChain"/>
<eClassifiers xsi:type="ecore:EClass" name="EventChainItem" abstract="true" interface="true">
<eOperations name="getEventChain" unique="false" eType="#//AbstractEventChain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainReference" eSuperTypes="#//BaseObject #//EventChainItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChain" lowerBound="1"
eType="#//EventChain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainContainer" eSuperTypes="#//BaseObject #//EventChainItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChain" lowerBound="1"
eType="#//SubEventChain" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimingConstraint" abstract="true" eSuperTypes="#//ReferableBaseObject"/>
<eClassifiers xsi:type="ecore:EClass" name="PhysicalSectionConstraint" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This contraints is used to limit a section in Memories"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="section" lowerBound="1"
eType="#//Section"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="memories" lowerBound="1"
upperBound="-1" eType="#//Memory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SynchronizationConstraint" abstract="true"
eSuperTypes="#//TimingConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Base class for synchronization constraints, which limit the distance between events&#xA;multipleOccurrencesAllowed: Defines whether multiple event occurrences are allowed for analysis&#xA;tolerance: Maximum allowed tolerance"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleOccurrencesAllowed"
unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="tolerance" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventSynchronizationConstraint" eSuperTypes="#//SynchronizationConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The synchronization constraint considers a group of events and limits the distance of the events within this group."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="events" lowerBound="1"
upperBound="-1" eType="#//EntityEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SynchronizationType">
<eLiterals name="_undefined_"/>
<eLiterals name="Stimulus"/>
<eLiterals name="Response"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainSynchronizationConstraint"
eSuperTypes="#//SynchronizationConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A synchronization constraint describes the allowed tolerance in synchronization between two event chains&#xA;scope: Considered event chains that have to by in sync&#xA;type: Defines which parts of the event chains have to be in sync"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" lowerBound="2" upperBound="2"
eType="#//EventChain"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" eType="#//SynchronizationType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MappingType">
<eLiterals name="_undefined_"/>
<eLiterals name="OneToOne"/>
<eLiterals name="Reaction"/>
<eLiterals name="UniqueReaction"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DelayConstraint" eSuperTypes="#//TimingConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This constraint describes how a source and a target event are placed relative to each other"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mappingType" unique="false"
eType="#//MappingType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
eType="#//EntityEvent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//EntityEvent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="upper" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="lower" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LatencyType">
<eLiterals name="_undefined_"/>
<eLiterals name="Age"/>
<eLiterals name="Reaction"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainLatencyConstraint" eSuperTypes="#//TimingConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A latency constraint describes the allowed range in latency between a stimulus and its response.&#xA;scope: Considered event chain that defines the stimulus and response relation&#xA;type: Defines the point of view (forward or backward)&#xA;minimum: Minimum allowed latency&#xA;maximum: Maximum allowed latency"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" lowerBound="1" eType="#//EventChain"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" eType="#//LatencyType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="minimum" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="maximum" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RepetitionConstraint" eSuperTypes="#//TimingConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A repetition constraint prescribes the distribution of a single event during runtime."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="event" lowerBound="1" eType="#//EntityEvent"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="span" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="lower" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="upper" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="jitter" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="period" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataAgeConstraint" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" lowerBound="1"
eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataAge" lowerBound="1"
eType="#//DataAge" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataAge" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="DataAgeCycle" eSuperTypes="#//DataAge">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="minimumCycle" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCycle" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataAgeTime" eSuperTypes="#//DataAge">
<eStructuralFeatures xsi:type="ecore:EReference" name="minimumTime" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="maximumTime" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Requirement" abstract="true" eSuperTypes="#//BaseObject #//INamed">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" unique="false"
eType="#//Severity"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="limit" lowerBound="1" eType="#//RequirementLimit"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessRequirement" eSuperTypes="#//Requirement">
<eStructuralFeatures xsi:type="ecore:EReference" name="process" lowerBound="1"
eType="#//AbstractProcess"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableRequirement" eSuperTypes="#//Requirement">
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" lowerBound="1"
eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArchitectureRequirement" eSuperTypes="#//Requirement">
<eStructuralFeatures xsi:type="ecore:EReference" name="component" lowerBound="1"
eType="#//Component"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessChainRequirement" eSuperTypes="#//Requirement">
<eStructuralFeatures xsi:type="ecore:EReference" name="processChain" lowerBound="1"
eType="#//ProcessChain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RequirementLimit" abstract="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="limitType" unique="false"
eType="#//LimitType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CPUPercentageRequirementLimit" eSuperTypes="#//RequirementLimit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
eType="#//CPUPercentageMetric"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="hardwareContext" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FrequencyRequirementLimit" eSuperTypes="#//RequirementLimit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
eType="#//FrequencyMetric"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="limitValue" lowerBound="1"
eType="#//Frequency" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PercentageRequirementLimit" eSuperTypes="#//RequirementLimit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
eType="#//PercentageMetric"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CountRequirementLimit" eSuperTypes="#//RequirementLimit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
eType="#//CountMetric"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeRequirementLimit" eSuperTypes="#//RequirementLimit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
eType="#//TimeMetric"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="limitValue" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Severity">
<eLiterals name="_undefined_"/>
<eLiterals name="Cosmetic"/>
<eLiterals name="Minor"/>
<eLiterals name="Major"/>
<eLiterals name="Critical"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LimitType">
<eLiterals name="_undefined_"/>
<eLiterals name="UpperLimit"/>
<eLiterals name="LowerLimit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TimeMetric">
<eLiterals name="_undefined_"/>
<eLiterals name="ActivateToActivate"/>
<eLiterals name="CoreExecutionTime"/>
<eLiterals name="EndToEnd"/>
<eLiterals name="EndToStart"/>
<eLiterals name="GrossExecutionTime"/>
<eLiterals name="Lateness"/>
<eLiterals name="MemoryAccessTime"/>
<eLiterals name="NetExecutionTime"/>
<eLiterals name="OsOverhead"/>
<eLiterals name="ParkingTime"/>
<eLiterals name="PollingTime"/>
<eLiterals name="ReadyTime"/>
<eLiterals name="ResponseTime"/>
<eLiterals name="RunningTime"/>
<eLiterals name="StartDelay"/>
<eLiterals name="StartToStart"/>
<eLiterals name="WaitingTime"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="CountMetric">
<eLiterals name="_undefined_"/>
<eLiterals name="Activations"/>
<eLiterals name="BoundedMigrations"/>
<eLiterals name="CacheHit"/>
<eLiterals name="CacheMiss"/>
<eLiterals name="FullMigrations"/>
<eLiterals name="MtaLimitExceeding"/>
<eLiterals name="Preemptions"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PercentageMetric">
<eLiterals name="_undefined_"/>
<eLiterals name="CacheHitRatio"/>
<eLiterals name="CacheMissRatio"/>
<eLiterals name="CoreExecutionTimeRelative"/>
<eLiterals name="MemoryAccessTimeRelative"/>
<eLiterals name="NormalizedLateness"/>
<eLiterals name="NormalizedResponseTime"/>
<eLiterals name="OsOverheadRelative"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="CPUPercentageMetric">
<eLiterals name="_undefined_"/>
<eLiterals name="CPUBuffering"/>
<eLiterals name="CPULoad"/>
<eLiterals name="CPUParking"/>
<eLiterals name="CPUPolling"/>
<eLiterals name="CPUReady"/>
<eLiterals name="CPURunning"/>
<eLiterals name="CPUWaiting"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="FrequencyMetric">
<eLiterals name="_undefined_"/>
<eLiterals name="CacheHitFrequency"/>
<eLiterals name="CacheMissFrequency"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataCoherencyGroup" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" lowerBound="1"
upperBound="-1" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//DataGroupScope"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" unique="false"
eType="#//CoherencyDirection"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="CoherencyDirection">
<eLiterals name="_undefined_"/>
<eLiterals name="input"/>
<eLiterals name="output"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataStabilityGroup" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" lowerBound="1"
upperBound="-1" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//DataGroupScope"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataGroupScope" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="ProcessScope" eSuperTypes="#//DataGroupScope">
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//AbstractProcess"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableScope" eSuperTypes="#//DataGroupScope">
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentScope" eSuperTypes="#//DataGroupScope">
<eStructuralFeatures xsi:type="ecore:EReference" name="component" eType="#//Component"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
eType="#//Event" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract event"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventSet" eSuperTypes="#//Event">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A set of entity-events"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="events" lowerBound="1"
upperBound="-1" eType="#//EntityEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EntityEvent" abstract="true" eSuperTypes="#//Event">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract event that describes the notification of a changed state of an entity"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TriggerEvent" abstract="true" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines Events to be used in Stimuli as trigger."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CustomEvent" eSuperTypes="#//TriggerEvent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="explicitTriggers" upperBound="-1"
eType="#//CustomEventTrigger" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of triggers (CustomEventTrigger).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _customEventTrigger_Event = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getCustomEventTrigger_Event();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.CustomEventTrigger%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getCustomEvent_ExplicitTriggers(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_customEventTrigger_Event)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StimulusEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a stimulus.&#xA;It contains only the stimulus but no event type because a stimulus has only one event type."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Stimulus"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a process&#xA;eventType: The type of the Event&#xA;entity: The process that fires the event (optional)&#xA;processingUnit: The processing unit that executes the process when the event is fired (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ProcessEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessChainEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of some process within a process chain&#xA;eventType: The type of the Event&#xA;entity: The process that fires the event (optional)&#xA;processingUnit: The processing unit that executes the process when the event is fired (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ProcessEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//ProcessChain"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableEvent" eSuperTypes="#//TriggerEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a runnable&#xA;eventType: The type of event&#xA;entity: The runnable that fires the event (optional)&#xA;process: The process that executes the runnable (optional)&#xA;processingUnit: The processing unit that executes the runnable (executes the process that calls the runnable) (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//RunnableEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelEvent" eSuperTypes="#//TriggerEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a label access&#xA;eventType: The type of event&#xA;entity: The accessed label that fires the event (optional)&#xA;runnable: The runnable that accesses the label (optional)&#xA;process: The process that accesses the label (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//LabelEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChannelEvent" eSuperTypes="#//TriggerEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a channel access&#xA;eventType: The type of event&#xA;entity: The accessed channel that fires the event (optional)&#xA;runnable: The runnable that accesses the label (optional)&#xA;process: The process that accesses the label (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ChannelEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Channel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SemaphoreEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a semaphore access&#xA;eventType: The type of event&#xA;entity: The accessed semaphore that fires the event (optional)&#xA;runnable: The runnable that accesses the semaphore (optional)&#xA;process: The process that accesses the semaphore (optional)&#xA;processingUnit: The processing unit that executes the process/runnable that accesses the semaphore (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//SemaphoreEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Semaphore"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a component&#xA;eventType: The type of event&#xA;entity: The component that fires the event (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ComponentEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Component"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ProcessEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a process event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="activate"/>
<eLiterals name="deadline"/>
<eLiterals name="start"/>
<eLiterals name="resume"/>
<eLiterals name="preempt"/>
<eLiterals name="poll"/>
<eLiterals name="run"/>
<eLiterals name="wait"/>
<eLiterals name="poll_parking"/>
<eLiterals name="park"/>
<eLiterals name="release_parking"/>
<eLiterals name="release"/>
<eLiterals name="terminate"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RunnableEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a runnable event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="start"/>
<eLiterals name="suspend"/>
<eLiterals name="resume"/>
<eLiterals name="terminate"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LabelEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a label event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="read"/>
<eLiterals name="write"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ChannelEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a label event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="send"/>
<eLiterals name="receive"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SemaphoreEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a semaphore event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="lock"/>
<eLiterals name="unlock"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ComponentEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a component event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="start"/>
<eLiterals name="end"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HWModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="definitions" upperBound="-1"
eType="#//HwDefinition" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="featureCategories" upperBound="-1"
eType="#//HwFeatureCategory" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
eType="#//HwStructure" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="domains" upperBound="-1"
eType="#//HwDomain" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwStructure" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
eType="#//StructureType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//HwPort" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
eType="#//HwStructure" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="modules" upperBound="-1"
eType="#//HwModule" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
eType="#//HwConnection" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
eType="#//HwPort" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.getInnerPorts(this);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwModule" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//HwPort" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="powerDomain" eType="#//PowerDomain"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="frequencyDomain" eType="#//FrequencyDomain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwDomain" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable"/>
<eClassifiers xsi:type="ecore:EClass" name="FrequencyDomain" eSuperTypes="#//HwDomain">
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Frequency"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="clockGating" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PowerDomain" eSuperTypes="#//HwDomain">
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Voltage"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="powerGating" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessingUnit" eSuperTypes="#//HwModule #//HwDestination #//HwPathElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//ProcessingUnitDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="accessElements" upperBound="-1"
eType="#//HwAccessElement" containment="true" resolveProxies="false" eOpposite="#//HwAccessElement/source"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="caches" upperBound="-1"
eType="#//Cache" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Memory" eSuperTypes="#//HwModule #//HwDestination">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//MemoryDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappings" upperBound="-1"
eType="#//MemoryMapping" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of mappings (MemoryMapping).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _memoryMapping_Memory = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getMemoryMapping_Memory();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.MemoryMapping%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getMemory_Mappings(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_memoryMapping_Memory)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MemoryType">
<eLiterals name="_undefined_"/>
<eLiterals name="DRAM"/>
<eLiterals name="SRAM"/>
<eLiterals name="FLASH"/>
<eLiterals name="PCM"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Cache" eSuperTypes="#//HwModule #//HwPathElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//CacheDefinition"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwFeatureCategory" eSuperTypes="#//ReferableBaseObject #//IDescription">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="featureType" unique="false"
eType="#//HwFeatureType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
eType="#//HwFeature" containment="true" resolveProxies="false" eOpposite="#//HwFeature/containingCategory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwFeature" eSuperTypes="#//ReferableBaseObject">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;final &lt;%java.lang.String%> featureName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(featureName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;category>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = featureName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;feature>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingCategory" eType="#//HwFeatureCategory"
changeable="false" eOpposite="#//HwFeatureCategory/features">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="bitWidth" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="portType" unique="false"
eType="#//PortType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="portInterface" unique="false"
eType="#//PortInterface"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="delegated" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;return (_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.HwStructure%>);"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
eType="#//HwConnection" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of connections (HwConnection).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _hwConnection_Port1 = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwConnection_Port1();&#xA;&lt;%org.eclipse.emf.ecore.EReference%> _hwConnection_Port2 = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwConnection_Port2();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwConnection%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwPort_Connections(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_hwConnection_Port1, _hwConnection_Port2)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionHandler" eSuperTypes="#//HwModule #//HwPathElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//ConnectionHandlerDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="internalConnections" upperBound="-1"
eType="#//HwConnection" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwConnection" eSuperTypes="#//ReferableBaseObject #//HwPathElement #//ITaggable">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>unmodifiableEList(&lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>filterNull(&lt;%org.eclipse.xtext.xbase.lib.CollectionLiterals%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>newArrayList(this.getPort1(), this.getPort2()))));"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="readLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Read latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="writeLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Write latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataRate" eType="#//DataRate"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="port1" eType="#//HwPort"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="port2" eType="#//HwPort"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="internal" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;return (_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ConnectionHandler%>);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwAccessElement" eSuperTypes="#//ITaggable #//INamed">
<eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//ProcessingUnit"
changeable="false" eOpposite="#//ProcessingUnit/accessElements">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="destination" lowerBound="1"
eType="#//HwDestination"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="accessPath" eType="#//HwAccessPath"
containment="true" resolveProxies="false" eOpposite="#//HwAccessPath/containingAccessElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="readLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Read latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="writeLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Write latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataRate" eType="#//DataRate"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="StructureType">
<eLiterals name="_undefined_"/>
<eLiterals name="System"/>
<eLiterals name="ECU"/>
<eLiterals name="Microcontroller"/>
<eLiterals name="SoC"/>
<eLiterals name="Cluster"/>
<eLiterals name="Group"/>
<eLiterals name="Array"/>
<eLiterals name="Area"/>
<eLiterals name="Region"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="CacheType">
<eLiterals name="_undefined_"/>
<eLiterals name="instruction"/>
<eLiterals name="data"/>
<eLiterals name="unified"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PortType">
<eLiterals name="_undefined_"/>
<eLiterals name="initiator"/>
<eLiterals name="responder"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SchedPolicy">
<eLiterals name="_undefined_"/>
<eLiterals name="RoundRobin"/>
<eLiterals name="FCFS"/>
<eLiterals name="PriorityBased"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="WriteStrategy">
<eLiterals name="_undefined_"/>
<eLiterals name="none"/>
<eLiterals name="writeback"/>
<eLiterals name="writethrough"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable"/>
<eClassifiers xsi:type="ecore:EClass" name="ProcessingUnitDefinition" eSuperTypes="#//HwDefinition">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="puType" unique="false"
eType="#//PuType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
eType="#//HwFeature"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="classifiers" upperBound="-1"
eType="#//CoreClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionHandlerDefinition" eSuperTypes="#//HwDefinition">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="policy" unique="false"
eType="#//SchedPolicy"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="readLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Read latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="writeLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Write latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataRate" eType="#//DataRate"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maxBurstSize" unique="false"
eType="#//PositiveInt" defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maxConcurrentTransfers"
unique="false" eType="#//PositiveInt" defaultValueLiteral="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MemoryDefinition" eSuperTypes="#//HwDefinition">
<eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="accessLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Access latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataRate" eType="#//DataRate"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="memoryType" unique="false"
eType="#//MemoryType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="classifiers" upperBound="-1"
eType="#//MemoryClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CacheDefinition" eSuperTypes="#//HwDefinition">
<eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="lineSize" eType="#//DataSize"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="accessLatency" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Access latency [cycles]&lt;/b>&lt;/p>"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="cacheType" unique="false"
eType="#//CacheType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="writeStrategy" unique="false"
eType="#//WriteStrategy"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="nWays" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="coherency" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusive" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="hitRate" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwPath" abstract="true">
<eOperations name="getContainingAccessElement" unique="false" eType="#//HwAccessElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return null;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//ProcessingUnit"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="get" value="return this.getContainingAccessElement().getSource();"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="destination" eType="#//HwDestination"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="get" value="return this.getContainingAccessElement().getDestination();"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwAccessPath" eSuperTypes="#//HwPath #//INamed">
<eStructuralFeatures xsi:type="ecore:EReference" name="containingAccessElement"
eType="#//HwAccessElement" changeable="false" eOpposite="#//HwAccessElement/accessPath">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="pathElements" lowerBound="1"
upperBound="-1" eType="#//HwPathElement"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="startAddress" unique="false"
eType="#//Address" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="endAddress" unique="false"
eType="#//Address" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="memOffset" unique="false"
eType="#//Address" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwPathElement" abstract="true" interface="true"
eSuperTypes="#//IReferable">
<eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwDestination" abstract="true" interface="true"
eSuperTypes="#//IReferable">
<eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PuType">
<eLiterals name="_undefined_"/>
<eLiterals name="GPU"/>
<eLiterals name="CPU"/>
<eLiterals name="Accelerator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PortInterface">
<eLiterals name="_undefined_"/>
<eLiterals name="custom"/>
<eLiterals name="CAN"/>
<eLiterals name="Flexray"/>
<eLiterals name="LIN"/>
<eLiterals name="MOST"/>
<eLiterals name="Ethernet"/>
<eLiterals name="SPI"/>
<eLiterals name="I2C"/>
<eLiterals name="AXI"/>
<eLiterals name="AHB"/>
<eLiterals name="APB"/>
<eLiterals name="SWR"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="HwFeatureType">
<eLiterals name="_undefined_"/>
<eLiterals name="performance"/>
<eLiterals name="power"/>
<eLiterals name="performance_and_power"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MappingModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulerAllocation" upperBound="-1"
eType="#//SchedulerAllocation" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableAllocation" upperBound="-1"
eType="#//RunnableAllocation" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="taskAllocation" upperBound="-1"
eType="#//TaskAllocation" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="isrAllocation" upperBound="-1"
eType="#//ISRAllocation" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="memoryMapping" upperBound="-1"
eType="#//MemoryMapping" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="physicalSectionMapping"
upperBound="-1" eType="#//PhysicalSectionMapping" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="addressMappingType" unique="false"
eType="#//MemoryAddressMappingType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MemoryAddressMappingType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines how to interpret the memory addresses in this mapping model"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="none"/>
<eLiterals name="address"/>
<eLiterals name="offset"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SchedulerAllocation" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Allocation of Schedulers"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="scheduler" lowerBound="1"
eType="#//Scheduler"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="responsibility" lowerBound="1"
upperBound="-1" eType="#//ProcessingUnit"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="executingPU" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TaskAllocation" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="task" lowerBound="1" eType="#//Task"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="scheduler" lowerBound="1"
eType="#//TaskScheduler"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="affinity" upperBound="-1"
eType="#//ProcessingUnit"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulingParameters" eType="#//SchedulingParameters"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameterExtensions" upperBound="-1"
eType="#//ParameterExtension" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ISRAllocation" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="isr" lowerBound="1" eType="#//ISR"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="controller" lowerBound="1"
eType="#//InterruptController"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableAllocation" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="scheduler" lowerBound="1"
eType="#//Scheduler"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" lowerBound="1"
eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MemoryMapping" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Mapping of AbstractMemoryElement (Label, Runnable, ISR, Task, ...)&#xA;to a specific memory."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="abstractElement" lowerBound="1"
eType="#//AbstractMemoryElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="memory" eType="#//Memory"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="memoryPositionAddress"
unique="false" eType="#//Address" defaultValueLiteral="0">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The position of the element in the mapped memory"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PhysicalSectionMapping" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
upperBound="-1" eType="#//Section">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Main"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="memory" lowerBound="1"
eType="#//Memory">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Memory"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="startAddress" unique="false"
eType="#//Address" defaultValueLiteral="0">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Memory"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="endAddress" unique="false"
eType="#//Address" defaultValueLiteral="0">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Memory"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runEntities" upperBound="-1"
eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OSModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
eType="#//Semaphore" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="operatingSystems" upperBound="-1"
eType="#//OperatingSystem" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="osOverheads" upperBound="-1"
eType="#//OsOverhead" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OsDataConsistency" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" unique="false" eType="#//OsDataConsistencyMode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataStability" eType="#//DataStability"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nonAtomicDataCoherency"
eType="#//NonAtomicDataCoherency" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataStability">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="algorithm" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="accessMultiplicity" unique="false"
eType="#//AccessMultiplicity"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="level" unique="false" eType="#//DataStabilityLevel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NonAtomicDataCoherency">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="algorithm" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="accessMultiplicity" unique="false"
eType="#//AccessMultiplicity"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="OsDataConsistencyMode">
<eLiterals name="_undefined_"/>
<eLiterals name="noProtection"/>
<eLiterals name="automaticProtection"/>
<eLiterals name="customProtection"/>
<eLiterals name="handledByModelElements"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="AccessMultiplicity">
<eLiterals name="_undefined_"/>
<eLiterals name="singleAccess"/>
<eLiterals name="multipleAccesses"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DataStabilityLevel">
<eLiterals name="_undefined_"/>
<eLiterals name="period"/>
<eLiterals name="process"/>
<eLiterals name="scheduleSection"/>
<eLiterals name="runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Semaphore" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="name: Name of semaphore&#xA;maxValue: maximum number of users which can access the semaphore simultaneously&#xA;initialValue: number of users which access semaphore at system startup&#xA;priorityCeilingProtocol: enables priority ceiling for this resource"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="semaphoreType" unique="false"
eType="#//SemaphoreType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="priorityCeilingProtocol"
unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="semaphoreAccesses" upperBound="-1"
eType="#//SemaphoreAccess" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of accesses (SemaphoreAccess).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _semaphoreAccess_Semaphore = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSemaphoreAccess_Semaphore();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.SemaphoreAccess%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSemaphore_SemaphoreAccesses(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_semaphoreAccess_Semaphore)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the semaphore belongs to.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Semaphores = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Semaphores();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSemaphore_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Semaphores)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SemaphoreType">
<eLiterals name="_undefined_"/>
<eLiterals name="CountingSemaphore"/>
<eLiterals name="Resource"/>
<eLiterals name="Spinlock"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Scheduler" abstract="true" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="scheduling algorithm: The used algorithm for scheduling&#xA;computation items: steps to perform the scheduling algorithm"/>
</eAnnotations>
<eOperations name="getSchedulingAlgorithm" unique="false" eType="#//Algorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return null;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="computationItems" upperBound="-1"
eType="#//ComputationItem" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulerAllocations" upperBound="-1"
eType="#//SchedulerAllocation" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of scheduler allocations (SchedulerAllocation).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _schedulerAllocation_Scheduler = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSchedulerAllocation_Scheduler();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.SchedulerAllocation%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getScheduler_SchedulerAllocations(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_schedulerAllocation_Scheduler)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableAllocations" upperBound="-1"
eType="#//RunnableAllocation" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of runnable allocations (RunnableAllocation).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _runnableAllocation_Scheduler = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnableAllocation_Scheduler();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.RunnableAllocation%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getScheduler_RunnableAllocations(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_runnableAllocation_Scheduler)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TaskScheduler" eSuperTypes="#//Scheduler">
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulingAlgorithm" eType="#//TaskSchedulingAlgorithm"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parentAssociation" eType="#//SchedulerAssociation"
containment="true" resolveProxies="false" eOpposite="#//SchedulerAssociation/child"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="childAssociations" upperBound="-1"
eType="#//SchedulerAssociation" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of child associations (SchedulerAssociation).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _schedulerAssociation_Parent = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSchedulerAssociation_Parent();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.SchedulerAssociation%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTaskScheduler_ChildAssociations(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_schedulerAssociation_Parent)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="taskAllocations" upperBound="-1"
eType="#//TaskAllocation" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of task allocations (TaskAllocation).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _taskAllocation_Scheduler = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTaskAllocation_Scheduler();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.TaskAllocation%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTaskScheduler_TaskAllocations(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_taskAllocation_Scheduler)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parentScheduler" eType="#//TaskScheduler"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="get" value="&lt;%org.eclipse.app4mc.amalthea.model.SchedulerAssociation%> _parentAssociation = this.getParentAssociation();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%> _parent = null;&#xA;if (_parentAssociation!=null)&#xA;{&#xA;&#x9;_parent=_parentAssociation.getParent();&#xA;}&#xA;return _parent;"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="childSchedulers" upperBound="-1"
eType="#//TaskScheduler" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="get" value="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.SchedulerAssociation%>, &lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.SchedulerAssociation%>, &lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>>()&#xA;{&#xA;&#x9;public &lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.SchedulerAssociation%> it)&#xA;&#x9;{&#xA;&#x9;&#x9;return it.getChild();&#xA;&#x9;}&#xA;};&#xA;final &lt;%java.lang.Iterable%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>> result = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>>filterNull(&lt;%org.eclipse.emf.ecore.xcore.lib.XcoreEListExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.SchedulerAssociation%>, &lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>>map(this.getChildAssociations(), _function));&#xA;&lt;%org.eclipse.emf.ecore.EReference%> _taskScheduler_ChildSchedulers = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTaskScheduler_ChildSchedulers();&#xA;int _size = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.size(result);&#xA;&lt;%java.lang.Object%>[] _array = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>>toList(result).toArray();&#xA;return new &lt;%org.eclipse.emf.ecore.util.EcoreEList.UnmodifiableEList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.TaskScheduler%>>(((&lt;%org.eclipse.emf.ecore.InternalEObject%>) this), _taskScheduler_ChildSchedulers, _size, _array);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SchedulerAssociation">
<eStructuralFeatures xsi:type="ecore:EReference" name="child" eType="#//TaskScheduler"
changeable="false" eOpposite="#//TaskScheduler/parentAssociation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//TaskScheduler"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulingParameters" eType="#//SchedulingParameters"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameterExtensions" upperBound="-1"
eType="#//ParameterExtension" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InterruptController" eSuperTypes="#//Scheduler">
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulingAlgorithm" eType="#//InterruptSchedulingAlgorithm"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="isrAllocations" upperBound="-1"
eType="#//ISRAllocation" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of ISR allocations (ISRAllocation).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iSRAllocation_Controller = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getISRAllocation_Controller();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ISRAllocation%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getInterruptController_IsrAllocations(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iSRAllocation_Controller)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SchedulingParameters">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Common scheduling parameters"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="minBudget" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="maxBudget" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="replenishment" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParameterExtension" instanceClassName="java.util.Map$Entry">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parameter extensions (used for scheduling algorithms)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Algorithm" abstract="true" eSuperTypes="#//BaseObject"/>
<eClassifiers xsi:type="ecore:EClass" name="InterruptSchedulingAlgorithm" abstract="true"
eSuperTypes="#//Algorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Interrupt Scheduling Algorithm"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TaskSchedulingAlgorithm" abstract="true"
eSuperTypes="#//Algorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Task Scheduling Algorithm"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FixedPriority" abstract="true" eSuperTypes="#//TaskSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Fixed Priority Scheduling"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FixedPriorityPreemptive" eSuperTypes="#//FixedPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Fixed Priority Preemptive scheduling algorithm"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FixedPriorityPreemptiveWithBudgetEnforcement"
eSuperTypes="#//FixedPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Fixed Priority Preemptive scheduling algorithm (with budget enforcement)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OSEK" eSuperTypes="#//FixedPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="OSEK scheduling algorithm"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeadlineMonotonic" eSuperTypes="#//FixedPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="task with shortest deadline has highest priority"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RateMonotonic" eSuperTypes="#//FixedPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="task with shortest recurrence (i.e. period) has highest priority"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pfair" abstract="true" eSuperTypes="#//TaskSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Proportionate Fair (Pfair) Scheduling&#xA;(global scheduling algorithm)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="quantSizeNs" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PfairPD2" eSuperTypes="#//Pfair">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Proportionate Fair PD2 Scheduling&#xA;(global scheduling algorithm)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PartlyPFairPD2" eSuperTypes="#//Pfair">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Partly Proportionate Fair PD2 Scheduling&#xA;(global scheduling algorithm)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EarlyReleaseFairPD2" eSuperTypes="#//Pfair">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Early Release Fair PD2 Scheduling&#xA;(global scheduling algorithm)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PartlyEarlyReleaseFairPD2" eSuperTypes="#//Pfair">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Partly Early Release Fair PD2 Scheduling&#xA;(global scheduling algorithm)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DynamicPriority" abstract="true" eSuperTypes="#//TaskSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Dynamic Priority Scheduling"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LeastLocalRemainingExecutionTimeFirst"
eSuperTypes="#//DynamicPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="global scheduling algorithm"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EarliestDeadlineFirst" eSuperTypes="#//DynamicPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="earliest absolute deadline first"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PriorityBasedRoundRobin" eSuperTypes="#//DynamicPriority">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="all tasks with equal priority executed for certain time slice"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReservationBasedServer" abstract="true"
eSuperTypes="#//TaskSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Reservation Based Server"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeferrableServer" eSuperTypes="#//ReservationBasedServer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Deferrable Server"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PollingPeriodicServer" eSuperTypes="#//ReservationBasedServer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Polling Periodic Server"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SporadicServer" eSuperTypes="#//ReservationBasedServer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Sporadic Server"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConstantBandwidthServer" eSuperTypes="#//ReservationBasedServer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Constant Bandwidth Server"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConstantBandwidthServerWithCASH" eSuperTypes="#//ReservationBasedServer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Constant Bandwidth Server With CASH"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Grouping" eSuperTypes="#//TaskSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="logical grouping of tasks/child-schedulers"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="UserSpecificSchedulingAlgorithm" eSuperTypes="#//TaskSchedulingAlgorithm #//InterruptSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="allows the user to define own scheduling algorithm (TA-Toolsuite feature)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameterExtensions" upperBound="-1"
eType="#//ParameterExtension" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PriorityBased" eSuperTypes="#//InterruptSchedulingAlgorithm">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Priority based Scheduling Algorithm for Interrupts"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OperatingSystem" eSuperTypes="#//BaseObject #//INamed">
<eStructuralFeatures xsi:type="ecore:EReference" name="overhead" eType="#//OsOverhead"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="taskSchedulers" upperBound="-1"
eType="#//TaskScheduler" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="interruptControllers" upperBound="-1"
eType="#//InterruptController" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="osDataConsistency" eType="#//OsDataConsistency"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VendorOperatingSystem" eSuperTypes="#//OperatingSystem">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="osName" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OsOverhead" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="apiOverhead" eType="#//OsAPIOverhead"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="isrCategory1Overhead" eType="#//OsISROverhead"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="isrCategory2Overhead" eType="#//OsISROverhead"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OsAPIOverhead" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSendMessage" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiTerminateTask" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSchedule" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiRequestResource" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiReleaseResource" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSetEvent" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiWaitEvent" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiClearEvent" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiActivateTask" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiEnforcedMigration" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSuspendOsInterrupts"
eType="#//Ticks" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiResumeOsInterrupts"
eType="#//Ticks" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiRequestSpinlock" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiReleaseSpinlock" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSenderReceiverRead"
eType="#//Ticks" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSenderReceiverWrite"
eType="#//Ticks" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiSynchronousServerCallPoint"
eType="#//Ticks" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiIocRead" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="apiIocWrite" eType="#//Ticks"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OsISROverhead" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="preExecutionOverhead" eType="#//Ticks"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="postExecutionOverhead"
eType="#//Ticks" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PropertyConstraintsModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="allocationConstraints"
upperBound="-1" eType="#//CoreAllocationConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingConstraints" upperBound="-1"
eType="#//MemoryMappingConstraint" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CoreAllocationConstraint" abstract="true"
eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Abstract Class, used to describe Constraints for Allocations&#xA;(these usually target Cores and their features/attributes)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="coreClassification" eType="#//CoreClassification"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MemoryMappingConstraint" abstract="true"
eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Abstract Class, used to describe Constraints for Mapping&#xA;(these usually target Memories and their features/attributes)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassification" eType="#//MemoryClassification"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessAllocationConstraint" eSuperTypes="#//CoreAllocationConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ProcessAllocationConstraints describe the constraints for&#xA;Process-to-Core allocations"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessPrototypeAllocationConstraint"
eSuperTypes="#//CoreAllocationConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ProcessPrototypeAllocationConstraints describe the constraints for&#xA;ProcessPrototype-to-Core allocations"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="processPrototype" eType="#//ProcessPrototype"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableAllocationConstraint" eSuperTypes="#//CoreAllocationConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="RunnableAllocationConstraints describe the constraints for&#xA;Runnable-to-Core allocations"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractElementMappingConstraint" eSuperTypes="#//MemoryMappingConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="AbstractElementMappingConstraints describe the constraints for&#xA;AbstractMemoryElement-to-Memory Mapping"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="abstractElement" eType="#//AbstractMemoryElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Classification" abstract="true" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Generalization for all Hardware related constraints"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="condition" unique="false"
eType="#//Condition"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="grouping" unique="false"
eType="#//GroupingType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Condition">
<eLiterals name="_undefined_"/>
<eLiterals name="requires"/>
<eLiterals name="excludes"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="GroupingType">
<eLiterals name="_undefined_"/>
<eLiterals name="allOfThem"/>
<eLiterals name="atLeastOneOfThem"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CoreClassification" eSuperTypes="#//Classification">
<eStructuralFeatures xsi:type="ecore:EReference" name="classifiers" upperBound="-1"
eType="#//CoreClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MemoryClassification" eSuperTypes="#//Classification">
<eStructuralFeatures xsi:type="ecore:EReference" name="classifiers" upperBound="-1"
eType="#//MemoryClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StimuliModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="stimuli" upperBound="-1"
eType="#//Stimulus" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="clocks" upperBound="-1"
eType="#//Clock" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Stimulus" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Every process/task can have one or more stimuli.&#xA;A stimulus activates the process"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="setModeValueList" eType="#//ModeValueList"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="executionCondition" eType="#//ModeConditionDisjunction"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="affectedProcesses" upperBound="-1"
eType="#//Process" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of affected processes (Process).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _process_Stimuli = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getProcess_Stimuli();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Process%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getStimulus_AffectedProcesses(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_process_Stimuli)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeValueList" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
eType="#//ModeAssignment" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeValueMapEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeValue" abstract="true" eSuperTypes="#//BaseObject">
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="getLiteral" unique="false" eType="#//ModeLiteral">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _value = this.getValue();&#xA;&#x9;boolean _tripleEquals = (_value == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel();&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;&#x9;if (_label!=null)&#xA;&#x9;{&#xA;&#x9;&#x9;_mode=_label.getMode();&#xA;&#x9;}&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode;&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xifexpression = null;&#xA;&#x9;if ((mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>))&#xA;&#x9;{&#xA;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _value = &lt;%this%>.getValue();&#xA;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, _value));&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;_xifexpression = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>)mode).getLiterals(), _function);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = null;&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
</eAnnotations>
</eOperations>
<eOperations name="getInteger" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.lang.Integer%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _value = this.getValue();&#xA;&#x9;boolean _tripleEquals = (_value == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel();&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;&#x9;if (_label!=null)&#xA;&#x9;{&#xA;&#x9;&#x9;_mode=_label.getMode();&#xA;&#x9;}&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode;&#xA;&#x9;&lt;%java.lang.Integer%> _xifexpression = null;&#xA;&#x9;if (((mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.NumericMode%>) &amp;&amp; this.getValue().matches(&quot;-?\\d+&quot;)))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.lang.Integer%>.valueOf(&lt;%java.lang.Integer%>.parseInt(this.getValue()));&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = null;&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//ModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeAssignment" eSuperTypes="#//ModeValue"/>
<eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunction" eSuperTypes="#//BaseObject">
<eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%>> _entries = this.getEntries();&#xA;for (final &lt;%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%> entry : _entries)&#xA;{&#xA;&#x9;boolean _isSatisfiedBy = entry.isSatisfiedBy(context);&#xA;&#x9;if (_isSatisfiedBy)&#xA;&#x9;{&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;return false;"/>
</eAnnotations>
<eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//ModeConditionDisjunctionEntry" containment="true"
resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunctionEntry" abstract="true"
interface="true" eSuperTypes="#//BaseObject">
<eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eParameters name="assignment" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeCondition" abstract="true" interface="true"
eSuperTypes="#//ModeConditionDisjunctionEntry">
<eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="relation" unique="false"
eType="#//RelationalOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeValueCondition" eSuperTypes="#//ModeValue #//ModeCondition">
<eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.lang.String%> _get = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get=context.get(this.getLabel());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue = _get;&#xA;return ((labelValue == null) || &lt;%com.google.common.base.Objects%>.equal(labelValue, this.getValue()));"/>
</eAnnotations>
<eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLabelCondition" eSuperTypes="#//ModeCondition">
<eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.lang.String%> _get = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get=context.get(this.getLabel1());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue1 = _get;&#xA;&lt;%java.lang.String%> _get_1 = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get_1=context.get(this.getLabel2());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue2 = _get_1;&#xA;return (((labelValue1 == null) || (labelValue2 == null)) || &lt;%com.google.common.base.Objects%>.equal(labelValue1, labelValue2));"/>
</eAnnotations>
<eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="label1" lowerBound="1"
eType="#//ModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="label2" lowerBound="1"
eType="#//ModeLabel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeConditionConjunction" eSuperTypes="#//ModeConditionDisjunctionEntry">
<eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeCondition%>> _entries = this.getEntries();&#xA;for (final &lt;%org.eclipse.app4mc.amalthea.model.ModeCondition%> entry : _entries)&#xA;{&#xA;&#x9;boolean _isSatisfiedBy = entry.isSatisfiedBy(context);&#xA;&#x9;boolean _not = (!_isSatisfiedBy);&#xA;&#x9;if (_not)&#xA;&#x9;{&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;return true;"/>
</eAnnotations>
<eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//ModeCondition" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FixedPeriodic" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus that is triggered periodically.&#xA;offset: Time of first occurrence&#xA;recurrence: Time between following occurrences"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="offset" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="recurrence" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PeriodicStimulus" eSuperTypes="#//Stimulus #//FixedPeriodic">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus that is triggered periodically.&#xA;jitter: Deviation from true periodicity to real occurrence&#xA;minDistance: Minimal time between occurrences"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="jitter" eType="#//ITimeDeviation"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="minDistance" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelativePeriodicStimulus" eSuperTypes="#//Stimulus">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus that is triggered relative to the previous occurrence.&#xA;offset: Time of first occurrence&#xA;step: Time (Deviation) between successive occurrences"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="offset" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nextOccurrence" eType="#//ITimeDeviation"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariableRateStimulus" eSuperTypes="#//Stimulus">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Periodic stimulus based on other events, like rotation speed&#xA;clock: Time base which defines deviation of time, multiple stimuli can have the same time base"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="step" lowerBound="1" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrencesPerStep" eType="#//IContinuousValueDeviation"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIncreasePerStep" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maxDecreasePerStep" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="scenario" eType="#//Scenario"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Scenario" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="clock" lowerBound="1" eType="#//Clock"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="samplingOffset" unique="false"
eType="#//NonNegativeDouble" defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="samplingRecurrence" unique="false"
eType="#//NonNegativeDouble" defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PeriodicSyntheticStimulus" eSuperTypes="#//Stimulus #//FixedPeriodic">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus (repeated periodically) with a defined list of occurrences.&#xA;occurrenceTimes: List of all occurrences"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrenceTimes" lowerBound="1"
upperBound="-1" eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CustomStimulus" eSuperTypes="#//Stimulus #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus to describe own custom types, including properties."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleStimulus" eSuperTypes="#//Stimulus">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Single occurrence at a defined time."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrence" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InterProcessStimulus" eSuperTypes="#//Stimulus">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus based on a explicit inter process trigger."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="explicitTriggers" upperBound="-1"
eType="#//InterProcessTrigger" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of triggers (InterProcessTrigger).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _interProcessTrigger_Stimulus = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getInterProcessTrigger_Stimulus();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.InterProcessTrigger%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getInterProcessStimulus_ExplicitTriggers(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_interProcessTrigger_Stimulus)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PeriodicBurstStimulus" eSuperTypes="#//Stimulus #//FixedPeriodic">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus (repeated periodically) for burst occurrences&#xA;burstLength: Time frame for the burst (occurrences after the length are clipped)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="burstLength" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrenceMinDistance"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="occurrenceCount" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventStimulus" eSuperTypes="#//Stimulus">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Stimulus which is activated by an event."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="triggeringEvents" lowerBound="1"
upperBound="-1" eType="#//TriggerEvent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArrivalCurveStimulus" eSuperTypes="#//Stimulus">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Arrival Curve Stimulus"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//ArrivalCurveEntry" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArrivalCurveEntry" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfOccurrences" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="lowerTimeBorder" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="upperTimeBorder" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Clock" abstract="true" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Within a Scenario a Clock defines the predefined curve progression in a simulation"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClockFunction" eSuperTypes="#//Clock">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="curveType" unique="false"
eType="#//CurveType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="period" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="peakToPeak" lowerBound="1"
eType="#//Frequency" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="xOffset" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="yOffset" eType="#//Frequency"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="CurveType">
<eLiterals name="_undefined_"/>
<eLiterals name="sine"/>
<eLiterals name="triangle"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClockStepList" eSuperTypes="#//Clock">
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
upperBound="-1" eType="#//ClockStep" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="period" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClockStep" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="frequency" lowerBound="1"
eType="#//Frequency" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="time" lowerBound="1" eType="#//Time"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SWModel" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Central instance to provide central access."/>
</eAnnotations>
<eOperations name="modeLiteral" unique="false" eType="#//ModeLiteral">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="if ((&lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(mode) || &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(literal)))&#xA;{&#xA;&#x9;return null;&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>> _modes = this.getModes();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _findFirst = null;&#xA;if (_modes!=null)&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> it)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(((it instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) &amp;&amp; &lt;%com.google.common.base.Objects%>.equal(it.getName(), mode)));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_findFirst=&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>>findFirst(_modes, _function);&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>> _literals = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst)!=null)&#xA;{&#xA;&#x9;_literals=((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst).getLiterals();&#xA;}&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _findFirst_1 = null;&#xA;if (_literals!=null)&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function_1 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, literal));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_findFirst_1=&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(_literals, _function_1);&#xA;}&#xA;return _findFirst_1;"/>
</eAnnotations>
<eParameters name="mode" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="literal" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="isrs" upperBound="-1" eType="#//ISR"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
eType="#//Task" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
eType="#//Runnable" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
eType="#//Label" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="channels" upperBound="-1"
eType="#//Channel" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processPrototypes" upperBound="-1"
eType="#//ProcessPrototype" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sections" upperBound="-1"
eType="#//Section" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="activations" upperBound="-1"
eType="#//Activation" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
eType="#//OsEvent" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="typeDefinitions" upperBound="-1"
eType="#//TypeDefinition" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="customEntities" upperBound="-1"
eType="#//CustomEntity" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processChains" upperBound="-1"
eType="#//ProcessChain" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="modes" upperBound="-1"
eType="#//Mode" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="modeLabels" upperBound="-1"
eType="#//ModeLabel" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractMemoryElement" abstract="true"
eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifying the size of the element corresponding to the needed memory allocation"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappings" upperBound="-1"
eType="#//MemoryMapping" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of mappings (MemoryMapping).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _memoryMapping_AbstractElement = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getMemoryMapping_AbstractElement();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.MemoryMapping%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractMemoryElement_Mappings(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_memoryMapping_AbstractElement)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractProcess" abstract="true" eSuperTypes="#//AbstractMemoryElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the abstract process belongs to.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CustomEntity" eSuperTypes="#//AbstractMemoryElement #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Possibility to define general custom elements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeName" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessChain" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Groups a list of processes to a process chain.&#xA;This does not define how the processes are chained, like being executed by one parent or like they trigger each other&#xA;This just defines that the processes should be chained."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="processes" upperBound="-1"
eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Process" abstract="true" eSuperTypes="#//AbstractProcess">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Generalizes interrupt service routines and tasks"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="stimuli" upperBound="-1"
eType="#//Stimulus"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ICallGraphItemContainer" abstract="true"
interface="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
eType="#//CallGraphItem" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CallGraph" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the different execution paths of a process or runnable"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CallGraphItem" abstract="true" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract item of a call graph"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingProcess" eType="#//Process"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Process%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Process%>.class);"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingRunnable" eType="#//Runnable"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A switch in the call graph, the selected path depends on the value of the provided mode conditions"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
eType="#//ModeSwitchEntry" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultEntry" eType="#//ModeSwitchDefault"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//ICallGraphItemContainer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A switch entry for a ModeSwitch.&#xA;It describes a path of the switch and the required mode condition to use this path"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
eType="#//ModeConditionDisjunction" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//ICallGraphItemContainer"/>
<eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A switch in the call graph, each path has a probability"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
eType="#//ProbabilitySwitchEntry" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A switch entry for a ProbabilitySwitch&#xA;It describes a path of the switch and it's probability"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="probability" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Counter" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A counter for the call sequence items"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="prescaler" unique="false"
eType="#//PositiveLong" defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
eType="#//NonNegativeLong" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Let the process wait for a combination of events defined by eventMask&#xA;maskType defines if the events in eventMask are linked by a AND or OR"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="eventMask" eType="#//EventMask"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maskType" unique="false"
eType="#//WaitEventType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="waitingBehaviour" unique="false"
eType="#//WaitingBehaviour"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="WaitEventType">
<eLiterals name="_undefined_"/>
<eLiterals name="AND"/>
<eLiterals name="OR"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="WaitingBehaviour">
<eLiterals name="_undefined_"/>
<eLiterals name="active"/>
<eLiterals name="passive"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Sets the events of eventMask&#xA;These events can be set for a specific process, if there is no process, is is global (for all processes)&#xA;If there is a process, it is possible to set the event for a specific process instance that is currently activated"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="eventMask" eType="#//EventMask"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Clears the events of eventMask"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="eventMask" eType="#//EventMask"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventMask" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A event mask"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
eType="#//OsEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OsEvent" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A event that can be set, cleared and waited for by a process"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="communicationOverheadInBit"
unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the OS event belongs to.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_OsEvents = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_OsEvents();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getOsEvent_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_OsEvents)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Triggers a stimulus to activate its processes"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="stimulus" lowerBound="1"
eType="#//InterProcessStimulus"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Migrates task to core of resource owner"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="resourceOwner" lowerBound="1"
eType="#//TaskScheduler"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Triggers scheduler"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Terminates the process"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Task" eSuperTypes="#//Process">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Schedulable entity, which is managed by the OS. An instance of a Task is mapped to exactly one core&#xA;and includes the direct representation of all abstractions."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="preemption" unique="false"
eType="#//Preemption"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleTaskActivationLimit"
unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ISR" eSuperTypes="#//Process">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Interrupt service routine"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="category" unique="false"
eType="#//ISRCategory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ISRCategory">
<eLiterals name="_undefined_"/>
<eLiterals name="CATEGORY_1"/>
<eLiterals name="CATEGORY_2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessPrototype" eSuperTypes="#//AbstractProcess">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Prototype class for Process.&#xA;It does contain meta information of potential processes, which does not represent the final state.&#xA;The final state can be several Tasks, which can be computed using provided information of this prototype."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="preemption" unique="false"
eType="#//Preemption"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="firstRunnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="lastRunnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="accessPrecedenceSpec" upperBound="-1"
eType="#//AccessPrecedenceSpec" containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the general label accesses"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="orderPrecedenceSpec" upperBound="-1"
eType="#//OrderPrecedenceSpec" containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the general order of runnables"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="chainedPrototypes" upperBound="-1"
eType="#//ChainedProcessPrototype" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="activation" eType="#//Activation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableCalls" upperBound="-1"
eType="#//RunnableCall" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChainedProcessPrototype" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="prototype" lowerBound="1"
eType="#//ProcessPrototype"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="apply" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GeneralPrecedence" abstract="true" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General abstraction for precedence"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="origin" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AccessPrecedenceSpec" eSuperTypes="#//GeneralPrecedence">
<eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="orderType" unique="false"
eType="#//AccessPrecedenceType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="AccessPrecedenceType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the access precedence at the time of one task period."/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="defaultWR">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Writer of label has to be performed before the reader."/>
</eAnnotations>
</eLiterals>
<eLiterals name="ignoreWR">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Dependency between writer and reader can be ignored."/>
</eAnnotations>
</eLiterals>
<eLiterals name="enforceRW">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Reader of label has to be performed before the writer (delay unit of controller)."/>
</eAnnotations>
</eLiterals>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OrderPrecedenceSpec" eSuperTypes="#//GeneralPrecedence">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="orderType" unique="false"
eType="#//OrderType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="OrderType">
<eLiterals name="_undefined_"/>
<eLiterals name="order">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines a general order, the included elements must not follow directly"/>
</eAnnotations>
</eLiterals>
<eLiterals name="directOrder">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The defined elements must follow directly"/>
</eAnnotations>
</eLiterals>
<eLiterals name="startSequence"/>
<eLiterals name="endSequence"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DirectionType">
<eLiterals name="_undefined_"/>
<eLiterals name="in"/>
<eLiterals name="out"/>
<eLiterals name="inout"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataDependency" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//RunnableParameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="callArguments" upperBound="-1"
eType="#//CallArgument"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingRunnable" eType="#//Runnable"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;final &lt;%java.lang.String%> runName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(runName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;runnable>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = runName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;parameter>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingRunnable" eType="#//Runnable"
changeable="false" eOpposite="#//Runnable/parameters">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" unique="false"
eType="#//DirectionType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//TypeDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms."/>
</eAnnotations>
<eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
</eAnnotations>
</eOperations>
<eOperations name="getFirstActivation" unique="false" eType="#//Activation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Activation%>>head(this.getActivations());"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="executionCondition" eType="#//ModeConditionDisjunction"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//RunnableParameter" containment="true" resolveProxies="false" eOpposite="#//RunnableParameter/containingRunnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="activations" upperBound="-1"
eType="#//Activation"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="callback" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Marker if runnable is used as callback."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="service" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Marker if runnable is used as a service."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="asilLevel" unique="false"
eType="#//ASILType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ASIL level for the runnable entity"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="section" eType="#//Section"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableCalls" upperBound="-1"
eType="#//RunnableCall" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of callers (RunnableCalls).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _runnableCall_Runnable = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnableCall_Runnable();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnable_RunnableCalls(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_runnableCall_Runnable)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the runnable belongs to.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Runnables = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Runnables();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnable_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Runnables)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Data representation, which can be accessed by run entities."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="constant" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the label as a constant, not modifiable entity"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="bVolatile" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines if the label value is volatile or persistent to survive shutdown and start of system"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dataStability" unique="false"
eType="#//LabelDataStability">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the data stability needs of the label"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="stabilityLevel" unique="false"
eType="#//DataStabilityLevel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="section" eType="#//Section"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="labelAccesses" upperBound="-1"
eType="#//LabelAccess" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of accesses (LabelAccess).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _labelAccess_Data = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getLabelAccess_Data();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.LabelAccess%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getLabel_LabelAccesses(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_labelAccess_Data)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the label belongs to.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Labels = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Labels();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getLabel_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Labels)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
<eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//DataType"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultElements" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maxElements" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="channelAccesses" upperBound="-1"
eType="#//ChannelAccess" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of accesses (ChannelAccess).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _channelAccess_Data = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getChannelAccess_Data();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ChannelAccess%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getChannel_ChannelAccesses(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_channelAccess_Data)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLabel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eOperations name="isEnum" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();&#xA;return (_mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>);"/>
</eAnnotations>
</eOperations>
<eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();&#xA;return (_mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.NumericMode%>);"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="mode" lowerBound="1" eType="#//Mode"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LabelDataStability">
<eLiterals name="_undefined_"/>
<eLiterals name="noProtection"/>
<eLiterals name="automaticProtection"/>
<eLiterals name="customProtection"/>
<eLiterals name="handledByModelElements"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Section" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A section is a logical structure, which contains labels and abstract run entities.&#xA;It is used to provide an easy mechanism to distribute objects to memory,&#xA;which are belonging together."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="asilLevel" unique="false"
eType="#//ASILType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="for specifying the ASIL level for the &quot;virtual memory sections&quot;"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
eType="#//Label" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of labels (Label).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _label_Section = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getLabel_Section();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Label%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSection_Labels(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_label_Section)));"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
eType="#//Runnable" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of runnables (Runnable).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _runnable_Section = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnable_Section();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSection_Runnables(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_runnable_Section)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of a object that describes computation"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of the execution needs of a Runnable (default and core-specific)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="needs" upperBound="-1"
eType="#//NeedEntry" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NeedEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Ticks" eSuperTypes="#//ComputationItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of the execution IDiscreteValueDeviation of a Runnable (default and core-specific)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="default" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="extended" upperBound="-1"
eType="#//TicksEntry" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TicksEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ProcessingUnitDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//IDiscreteValueDeviation"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ModeLabelAccessEnum">
<eLiterals name="_undefined_"/>
<eLiterals name="read"/>
<eLiterals name="set"/>
<eLiterals name="increment"/>
<eLiterals name="decrement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of a mode label access of a run entity."/>
</eAnnotations>
<eOperations name="validateInvariants" unique="false" 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 &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//ModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="access" unique="false"
eType="#//ModeLabelAccessEnum"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Just used in case that this access writes a value to a Mode-Label.&#xA;It can be used to define which mode value is written to the label."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="step" unique="false" eType="#//PositiveInt"
defaultValueLiteral="1">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Just used in case of increment or decrement.&#xA;It can be used to define a step other than 1."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of a label access of a run entity."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="access" unique="false"
eType="#//LabelAccessEnum"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="statistic" eType="#//LabelAccessStatistic"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Optional parameter for statistic values"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="transmissionPolicy" eType="#//TransmissionPolicy"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Optional parameter for transmission policy of larger data"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dataStability" unique="false"
eType="#//LabelAccessDataStability">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the data stability needs of the label access"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="implementation" unique="false"
eType="#//LabelAccessImplementation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//CallGraphItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Channel"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="elements" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="transmissionPolicy" eType="#//TransmissionPolicy"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChannelSend" eSuperTypes="#//ChannelAccess"/>
<eClassifiers xsi:type="ecore:EClass" name="ChannelReceive" eSuperTypes="#//ChannelAccess">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="receiveOperation" unique="false"
eType="#//ReceiveOperation"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dataMustBeNew" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIndex" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ReceiveOperation">
<eLiterals name="_undefined_"/>
<eLiterals name="FIFO_Read"/>
<eLiterals name="FIFO_Take"/>
<eLiterals name="LIFO_Read"/>
<eLiterals name="LIFO_Take"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LabelAccessDataStability">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Defines the data stability needs of a label access.&#xA;Inherited means that the setting of the Label is used"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="inherited"/>
<eLiterals name="noProtection"/>
<eLiterals name="automaticProtection"/>
<eLiterals name="customProtection"/>
<eLiterals name="handledByModelElements"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LabelAccessEnum">
<eLiterals name="_undefined_"/>
<eLiterals name="read"/>
<eLiterals name="write"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LabelAccessImplementation">
<eLiterals name="_undefined_"/>
<eLiterals name="explicit"/>
<eLiterals name="implicit"/>
<eLiterals name="timed"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes an semaphore access"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="semaphore" lowerBound="1"
eType="#//Semaphore"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="access" unique="false"
eType="#//SemaphoreAccessEnum"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="waitingBehaviour" unique="false"
eType="#//WaitingBehaviour"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SemaphoreAccessEnum">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="request: requests access to semaphore&#xA;release: release accessed semaphore&#xA;exclusive: gets access to requested semaphore only when there is no other user accessing it"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="request"/>
<eLiterals name="exclusive"/>
<eLiterals name="release"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SenderReceiverCommunication" abstract="true"
eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for sender-receiver-communication (it can be read or write)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="buffered" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SenderReceiverRead" eSuperTypes="#//SenderReceiverCommunication">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The read operation of the receiver of the sender-receiver-communication"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SenderReceiverWrite" eSuperTypes="#//SenderReceiverCommunication">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The write operation of the sender of the sender-receiver-communication&#xA;It contains the runnables that have the corresponding SenderReceiverRead"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="notifiedRunnables" upperBound="-1"
eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for client/server communication&#xA;It refers to a required runnable that describes the called server operation"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="serverRunnable" lowerBound="1"
eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SynchronousServerCall" eSuperTypes="#//ServerCall">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A synchronous server call"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="waitingBehaviour" unique="false"
eType="#//WaitingBehaviour"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AsynchronousServerCall" eSuperTypes="#//ServerCall">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A asynchronous server call&#xA;It refers to a optional runnable that exploits the results produced by the server"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="resultRunnable" eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GetResultServerCall" eSuperTypes="#//ServerCall">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the result of a previous asynchronous server call"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="blockingType" unique="false"
eType="#//BlockingType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BlockingType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Blocking type"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="active_wait"/>
<eLiterals name="passive_wait"/>
<eLiterals name="non_blocking"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//CallGraphItem #//INamed #//ICallGraphItemContainer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes a group of deviation runnable items"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject">
<eOperations name="getName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
</eAnnotations>
</eOperations>
<eOperations name="computeUniqueName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingCall" eType="#//RunnableCall"
changeable="false" eOpposite="#//RunnableCall/arguments">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//RunnableParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Main"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//CallGraphItem #//ITaggable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of a runnable call of a run entity."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" lowerBound="1"
eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
eType="#//CallArgument" containment="true" resolveProxies="false" eOpposite="#//CallArgument/containingCall"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="statistic" eType="#//RunEntityCallStatistic"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Preemption">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Preemption type for scheduling"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="preemptive"/>
<eLiterals name="cooperative"/>
<eLiterals name="non_preemptive"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ConcurrencyType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Concurrency type of an entity"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="SingleCoreSafe">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Safe for access inside of the same core"/>
</eAnnotations>
</eLiterals>
<eLiterals name="MultiCoreSafe">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Safe for access from another core"/>
</eAnnotations>
</eLiterals>
<eLiterals name="SingleCorePrioSafe"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//CallGraphItem">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Explicitly trigger a custom event from a runnable."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="event" lowerBound="1" eType="#//CustomEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataType" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Central access point for different data type definitions"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CompoundType" abstract="true" eSuperTypes="#//BaseObject #//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Couple of compound data types"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Struct" eSuperTypes="#//CompoundType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representing a struct definition, containing different entries"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
eType="#//StructEntry" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StructEntry" eSuperTypes="#//BaseObject #//INamed">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of one struct entry"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Array" eSuperTypes="#//CompoundType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representation of an array data type"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="numberElements" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pointer" eSuperTypes="#//CompoundType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Representing a pointer"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeRef" eSuperTypes="#//BaseObject #//DataType">
<eStructuralFeatures xsi:type="ecore:EReference" name="typeDef" eType="#//TypeDefinition"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Alias" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="target" unique="false"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Name of the target environment"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Corresponding name in the target environment"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Size of the defined data type"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataTypeDefinition" eSuperTypes="#//TypeDefinition">
<eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BaseTypeDefinition" eSuperTypes="#//TypeDefinition">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Basic data type definition, including naming (alias) in target environments"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="aliases" upperBound="-1"
eType="#//Alias" containment="true" resolveProxies="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Naming in different target environments"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Activation" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General abstraction for activation source.&#xA;Used for first definition of an activation rate, which is later refined by stimulus."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PeriodicActivation" eSuperTypes="#//Activation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Min and Max execution frequency within a task or timeslice"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="min" eType="#//Time" containment="true"
resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="max" eType="#//Time" containment="true"
resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="recurrence" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="offset" lowerBound="1"
eType="#//Time" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariableRateActivation" eSuperTypes="#//Activation #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Periodic activation based on other events, like rotation speed"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="step" lowerBound="1" eType="#//Time"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrencesPerStep" lowerBound="1"
eType="#//IContinuousValueDeviation" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SporadicActivation" eSuperTypes="#//Activation #//IDescription">
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrence" lowerBound="1"
eType="#//ITimeDeviation" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SingleActivation" eSuperTypes="#//Activation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A single activation between time min and max"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="min" eType="#//Time" containment="true"
resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="max" eType="#//Time" containment="true"
resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventActivation" eSuperTypes="#//Activation">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Activation which is triggered by an event."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="triggeringEvents" lowerBound="1"
upperBound="-1" eType="#//TriggerEvent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CustomActivation" eSuperTypes="#//Activation #//IDescription"/>
<eClassifiers xsi:type="ecore:EClass" name="LabelAccessStatistic" eSuperTypes="#//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Contains information about access statistic values"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//NumericStatistic"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="cacheMisses" eType="#//NumericStatistic"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunEntityCallStatistic" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="statistic" eType="#//NumericStatistic"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ASILType">
<eLiterals name="_undefined_"/>
<eLiterals name="D"/>
<eLiterals name="C"/>
<eLiterals name="B"/>
<eLiterals name="A"/>
<eLiterals name="QM"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MeasurementModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="measurements" upperBound="-1"
eType="#//Measurement" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Measurement" abstract="true" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="runtimes" upperBound="-1"
eType="#//Time" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runtimeDeviation" eType="#//ITimeDeviation"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainMeasurement" eSuperTypes="#//Measurement">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChain" lowerBound="1"
eType="#//EventChain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TaskMeasurement" eSuperTypes="#//Measurement">
<eStructuralFeatures xsi:type="ecore:EReference" name="task" lowerBound="1" eType="#//Task"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableMeasurement" eSuperTypes="#//Measurement">
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" lowerBound="1"
eType="#//Runnable"/>
</eClassifiers>
</ecore:EPackage>