<?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/1.2.0" nsPrefix="am">
  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2021 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="modelDirectory" value="/org.eclipse.app4mc.amalthea.model/xcore-gen"/>
    <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.model.emf.AmaltheaEObjectImpl"/>
    <details key="providerRootExtendsClass" value="org.eclipse.app4mc.amalthea.model.provider.AmaltheaItemProviderAdapter"/>
    <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-2021 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="multipleEditorPages" value="false"/>
    <details key="decoration" value="Live"/>
    <details key="collapseAllAction" value="true"/>
    <details key="expandAllAction" value="true"/>
    <details key="autoExpandProperties" value="1"/>
    <details key="eclipsePlatformVersion" value="2019-12"/>
    <details key="fileExtensions" value="amxmi"/>
    <details key="pluginKey" value=""/>
    <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;1.2.0&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"/>
  </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="namespaces" upperBound="-1"
        eType="#//Namespace" 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>
    <eOperations name="getNamedContainer" unique="false" eType="#//INamed">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
      </eAnnotations>
    </eOperations>
    <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;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getQualifiedNameSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getDefaultNameSeparator" 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 name separator."/>
        <details key="body" value="return &quot;.&quot;;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getNamespace" unique="false" eType="#//Namespace">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="return null;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namespace!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namespace.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </eAnnotations>
    </eOperations>
    <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="Basic"/>
        <details key="notify" value="true"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" 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="propertyCategory" value="Read only"/>
        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
      </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="getEncodedQualifiedName" 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="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
      </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);"/>
      </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%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _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="INamespaceMember" abstract="true" interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Namespace">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Basic"/>
        <details key="notify" 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 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:EClass" name="Namespace" eSuperTypes="#//ReferableObject">
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nextSegments" upperBound="-1"
        eType="#//Namespace" containment="true" resolveProxies="false" eOpposite="#//Namespace/previousSegment"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="previousSegment" eType="#//Namespace"
        changeable="false" eOpposite="#//Namespace/nextSegments">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Read only"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
        eType="#//INamespaceMember" 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 (INamespaceMember) referring to this namespace.&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%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#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(_iNamespaceMember_Namespace)));"/>
      </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="MapObject" eSuperTypes="#//Value">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="@since 1.2"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
        eType="#//CustomProperty" 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 BigInteger 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);"/>
      </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);"/>
      </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);"/>
      </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);"/>
      </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);"/>
      </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);"/>
      </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);"/>
      </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="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </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;throw new &lt;%java.lang.NumberFormatException%>(&quot;Null&quot;);&#xA;}&#xA;else&#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 #//IComponentContainer #//IInterfaceContainer">
    <eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
        eType="#//ComponentStructure" 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="IComponentContainer" abstract="true"
      interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
        eType="#//Component" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IInterfaceContainer" abstract="true"
      interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaces" upperBound="-1"
        eType="#//MainInterface" 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" eOpposite="#//ComponentInstance/containingSystem"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
        eType="#//Connector" containment="true" resolveProxies="false" eOpposite="#//Connector/containingSystem"/>
    <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="ComponentInterface" abstract="true"
      eSuperTypes="#//ReferableBaseObject #//ITaggable">
    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//TypeDefinition"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subInterfaces" upperBound="-1"
        eType="#//SubInterface" containment="true" resolveProxies="false" eOpposite="#//SubInterface/containingInterface"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MainInterface" eSuperTypes="#//ComponentInterface #//INamespaceMember #//IComponentStructureMember">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="1.0"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SubInterface" eSuperTypes="#//ComponentInterface">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="containingInterface" eType="#//ComponentInterface"
        changeable="false" eOpposite="#//ComponentInterface/subInterfaces">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Read only"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </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>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//ComponentInterface"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentStructure" eSuperTypes="#//ReferableObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <eOperations name="getContainingStructure" unique="false" eType="#//ComponentStructure">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getDefaultNameSeparator" 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="return &quot;::&quot;;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingStructure!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingStructure.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral=""/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subStructures" upperBound="-1"
        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
        eType="#//IComponentStructureMember" 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 (IComponentStructureMember) referring to this structure.&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%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#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(_iComponentStructureMember_Structure)));"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IComponentStructureMember" abstract="true"
      interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="structure" eType="#//ComponentStructure"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable #//INamespaceMember #//IComponentStructureMember">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
        eType="#//ComponentPort" containment="true" resolveProxies="false" eOpposite="#//ComponentPort/containingComponent"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="processes" upperBound="-1"
        eType="#//AbstractProcess">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Included SW Elements"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
        eType="#//Runnable">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Included SW Elements"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
        eType="#//Label">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Included SW Elements"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
        eType="#//Semaphore">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Included SW Elements"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
        eType="#//OsEvent">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Included SW Elements"/>
      </eAnnotations>
    </eStructuralFeatures>
  </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">
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
        eOpposite="#//ISystem/componentInstances"/>
    <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="containingSystem" eType="#//ISystem"
        eOpposite="#//ISystem/connectors"/>
    <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"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="implementedInterfaces"
        upperBound="-1" eType="#//InterfaceChannel" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InterfaceChannel" instanceClassName="java.util.Map$Entry">
    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ComponentInterface"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Channel"/>
  </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" lowerBound="1" eType="#//ComponentPort"/>
  </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="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="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </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="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </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="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </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="Basic"/>
      </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);"/>
      </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="ChannelFillCondition" eSuperTypes="#//ModeCondition">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Experimental implementation of a ChannelFillCondition.&#xA;Will not be part of an official release!&#xA;Possible future implementation will not extend ModeCondition."/>
    </eAnnotations>
    <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="return false;"/>
      </eAnnotations>
      <eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="channel" lowerBound="1"
        eType="#//Channel"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fillLevel" unique="false"
        eType="#//NonNegativeInt"/>
  </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="recurrence" lowerBound="1"
        eType="#//Time" containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="offset" 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" lowerBound="1"
        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" lowerBound="1"
        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="#//PositiveInt" defaultValueLiteral="1"/>
  </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="#//PositiveInt" defaultValueLiteral="1"/>
    <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_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#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_Processes)));"/>
      </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="IExecutable" abstract="true" interface="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="@since 1.2"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
        containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Process" abstract="true" eSuperTypes="#//AbstractProcess #//IExecutable">
    <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="stimuli" upperBound="-1"
        eType="#//Stimulus"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IActivityGraphItemContainer" abstract="true"
      interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
        eType="#//ActivityGraphItem" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraph" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
    <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="ActivityGraphItem" abstract="true" eSuperTypes="#//BaseObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="An abstract item of a ActivityGraph."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="containingExecutable" eType="#//IExecutable"
        changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@since 1.2"/>
        <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.IExecutable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.IExecutable%>.class);"/>
      </eAnnotations>
    </eStructuralFeatures>
    <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="documentation" value="@deprecated Use getContainingExecutable() instead."/>
        <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="documentation" value="@deprecated Use getContainingExecutable() instead."/>
        <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>
    <eStructuralFeatures xsi:type="ecore:EReference" name="containingActivityGraph"
        eType="#//ActivityGraph" 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.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//ActivityGraphItem">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A switch in the ActivityGraph, 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 #//IActivityGraphItemContainer">
    <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 #//IActivityGraphItemContainer"/>
  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//ActivityGraphItem">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A switch in the ActivityGraph, 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 #//IActivityGraphItemContainer">
    <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="WhileLoop" eSuperTypes="#//ActivityGraphItem #//IActivityGraphItemContainer">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A While loop in the ActivityGraph.&#xA;The (repeated) execution depends on the value of the provided mode conditions."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
        eType="#//ModeConditionDisjunction" containment="true" resolveProxies="false"/>
  </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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="IDependsOn" abstract="true" interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
        containment="true" resolveProxies="false"/>
  </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 #//IDependsOn">
    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" 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.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
      </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"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement #//IExecutable #//INamespaceMember">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms."/>
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//ActivityGraphItem">
      <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.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().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="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 #//INamespaceMember">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Data representation, which can be accessed by run entities."/>
      <details key="labelFeature" value="qualifiedName"/>
    </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 #//INamespaceMember">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <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);"/>
      </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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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);"/>
      </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 #//IDependsOn">
    <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"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ActivityGraphItem">
    <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="#//ComponentPort"/>
  </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="#//ActivityGraphItem">
    <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="#//ComponentPort"/>
  </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="#//ActivityGraphItem #//INamed #//IActivityGraphItemContainer">
    <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"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="atomic" 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="@since 1.2"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject #//IDependsOn">
    <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="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#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;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
      </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="Basic"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//ActivityGraphItem #//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="#//ActivityGraphItem">
    <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 #//ITaggable">
    <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 #//ITaggable">
    <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 #//INamespaceMember">
    <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">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="labelFeature" value="qualifiedName"/>
    </eAnnotations>
    <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"/>
      <details key="labelFeature" value="qualifiedName"/>
    </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" 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" lowerBound="1" eType="#//Time"
        containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="max" lowerBound="1" 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>
</ecore:EPackage>
