<?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/2.1.0" nsPrefix="am">
  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2022 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-2022 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="2020-06"/>
    <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;2.1.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="LESS_THAN_OR_EQUAL"/>
    <eLiterals name="GREATER_THAN"/>
    <eLiterals name="GREATER_THAN_OR_EQUAL"/>
  </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:EEnum" name="ParameterType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Parameter type (e.g. for scheduling parameters)"/>
    </eAnnotations>
    <eLiterals name="_undefined_"/>
    <eLiterals name="Integer"/>
    <eLiterals name="Float"/>
    <eLiterals name="Bool"/>
    <eLiterals name="String"/>
    <eLiterals name="Time"/>
  </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="ModeLabelEvent" eSuperTypes="#//TriggerEvent">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Describes the event of a mode label access&#xA;eventType: The type of event&#xA;entity: The accessed mode label that fires the event&#xA;runnable: The runnable that accesses the mode label (optional)&#xA;process: The process that accesses the mode label (optional)"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
        eType="#//ModeLabelEventType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//ModeLabel"/>
    <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="ModeLabelEventType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The types of a mode label event"/>
    </eAnnotations>
    <eLiterals name="_all_"/>
    <eLiterals name="read"/>
    <eLiterals name="write"/>
    <eLiterals name="increment"/>
    <eLiterals name="decrement"/>
  </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 #//ISchedulingParameterContainer">
    <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"/>
  </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" lowerBound="1"
        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"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="schedulerDefinitions" upperBound="-1"
        eType="#//SchedulerDefinition" containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="schedulingParameterDefinitions"
        upperBound="-1" eType="#//SchedulingParameterDefinition" 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="#//NonNegativeInt" defaultValueLiteral="0"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" unique="false"
        eType="#//PositiveInt" defaultValueLiteral="1"/>
    <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 #//ISchedulingParameterContainer">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Scheduler&#xA;&lt;ul>&#xA;&lt;li>definition: determines algorithm for scheduling and its required parameters&lt;/li>&#xA;&lt;li>schedulingParameters: current values for global scheduling parameters&lt;/li>&#xA;&lt;li>computation items: steps to perform the scheduling algorithm&lt;/li>&#xA;&lt;/ul>"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//SchedulerDefinition"/>
    <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="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" eSuperTypes="#//ISchedulingParameterContainer">
    <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"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InterruptController" eSuperTypes="#//Scheduler">
    <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="OsDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable"/>
  <eClassifiers xsi:type="ecore:EClass" name="SchedulerDefinition" eSuperTypes="#//OsDefinition #//IDescription">
    <eStructuralFeatures xsi:type="ecore:EReference" name="algorithmParameters" upperBound="-1"
        eType="#//SchedulingParameterDefinition">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Parameters"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="processParameters" upperBound="-1"
        eType="#//SchedulingParameterDefinition">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Parameters"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiresParentScheduler"
        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="propertyCategory" value="Options"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passesParametersUpwards"
        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="propertyCategory" value="Options"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="hasExactlyOneChild" 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="propertyCategory" value="Options"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SchedulingParameterDefinition" eSuperTypes="#//OsDefinition">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" eType="#//ParameterType"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="false"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mandatory" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Value"
        containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="schedulerDefinitions" upperBound="-1"
        eType="#//SchedulerDefinition" 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 definitions from which this parameter definition is used.&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%> _schedulerDefinition_AlgorithmParameters = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSchedulerDefinition_AlgorithmParameters();&#xA;&lt;%org.eclipse.emf.ecore.EReference%> _schedulerDefinition_ProcessParameters = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSchedulerDefinition_ProcessParameters();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.SchedulerDefinition%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getSchedulingParameterDefinition_SchedulerDefinitions(), &#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(_schedulerDefinition_AlgorithmParameters, _schedulerDefinition_ProcessParameters)));"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ISchedulingParameterContainer" abstract="true"
      interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="schedulingParameters" upperBound="-1"
        eType="#//SchedulingParameter" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SchedulingParameter" instanceClassName="java.util.Map$Entry">
    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//SchedulingParameterDefinition">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="notify" value="true"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Value"
        containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="OsOverhead" eSuperTypes="#//OsDefinition">
    <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="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="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="#//CombinatorialCondition"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="grouping" unique="false"
        eType="#//GroupingType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="CombinatorialCondition">
    <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="#//ConditionDisjunction"
        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="ISatisfiable" abstract="true" interface="true">
    <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>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunction" eSuperTypes="#//BaseObject #//ISatisfiable">
    <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="#//ISatisfiable"/>
  <eClassifiers xsi:type="ecore:EClass" name="ModeConditionConjunction" eSuperTypes="#//BaseObject #//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="ModeCondition" abstract="true" eSuperTypes="#//Condition #//ModeConditionDisjunctionEntry">
    <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="#//BaseObject #//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>
    <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="label1" lowerBound="1"
        eType="#//ModeLabel"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="label2" lowerBound="1"
        eType="#//ModeLabel"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ConditionDisjunction" eSuperTypes="#//BaseObject">
    <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
        upperBound="-1" eType="#//ConditionDisjunctionEntry" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ConditionDisjunctionEntry" abstract="true"
      interface="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="ConditionConjunction" eSuperTypes="#//BaseObject #//ConditionDisjunctionEntry">
    <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
        upperBound="-1" eType="#//Condition" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Condition" abstract="true" eSuperTypes="#//ConditionDisjunctionEntry"/>
  <eClassifiers xsi:type="ecore:EClass" name="ChannelFillCondition" eSuperTypes="#//BaseObject #//Condition">
    <eStructuralFeatures xsi:type="ecore:EReference" name="channel" lowerBound="1"
        eType="#//Channel"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="relation" unique="false"
        eType="#//RelationalOperator"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fillLevel" unique="false"
        eType="#//NonNegativeInt"/>
  </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="localLabels" upperBound="-1"
        eType="#//LocalModeLabel" containment="true" resolveProxies="false" eOpposite="#//LocalModeLabel/containingExecutable"/>
    <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.&#xA;&#xA;@deprecated Use more general Switch instead."/>
    </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="Switch" 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.&#xA;&#xA;@since 2.0"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
        eType="#//SwitchEntry" containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultEntry" eType="#//SwitchDefault"
        containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SwitchEntry" eSuperTypes="#//BaseObject #//INamed #//IActivityGraphItemContainer">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A switch entry for a Switch.&#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="#//ConditionDisjunction" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SwitchDefault" 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.&#xA;&#xA;@since 1.2"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
        eType="#//ConditionDisjunction" 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="#//ConditionDisjunction"
        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="interruptible" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
      <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="context" upperBound="-1"
        eType="#//LocalModeLabelAssignment" containment="true" resolveProxies="false"/>
    <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>
  <eClassifiers xsi:type="ecore:EClass" name="LocalModeLabel" eSuperTypes="#//ReferableBaseObject">
    <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%>> _xblockexpression = null;&#xA;{&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.IExecutable%> exe = this.getContainingExecutable();&#xA;&#x9;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&#x9;if ((exe instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>)exe).getQualifiedNameSegments();&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
      </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>
    <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="containingExecutable" eType="#//IExecutable"
        changeable="false" eOpposite="#//IExecutable/localLabels">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="propertyCategory" value="Read only"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mode" lowerBound="1" eType="#//Mode"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LocalModeValue" abstract="true">
    <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="label" lowerBound="1" eType="#//LocalModeLabel"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="valueSource" lowerBound="1"
        eType="#//ILocalModeValueSource" containment="true" resolveProxies="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LocalModeLabelAssignment" eSuperTypes="#//LocalModeValue #//ActivityGraphItem"/>
  <eClassifiers xsi:type="ecore:EClass" name="LocalModeCondition" eSuperTypes="#//LocalModeValue #//Condition #//IAnnotatable">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="relation" unique="false"
        eType="#//RelationalOperator"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ILocalModeValueSource" abstract="true"
      interface="true">
    <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="return false;"/>
      </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="return false;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getMode" unique="false" eType="#//Mode">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="return null;"/>
      </eAnnotations>
    </eOperations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ModeLiteralConst" eSuperTypes="#//ILocalModeValueSource">
    <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="return true;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getMode" unique="false" eType="#//Mode">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _value = this.getValue();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = null;&#xA;if (_value!=null)&#xA;{&#xA;&#x9;_containingMode=_value.getContainingMode();&#xA;}&#xA;return _containingMode;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//ModeLiteral"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IntegerConst" eSuperTypes="#//ILocalModeValueSource">
    <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="return true;"/>
      </eAnnotations>
    </eOperations>
    <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="ModeLabelRef" eSuperTypes="#//ILocalModeValueSource">
    <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="return this.getValue().isEnum();"/>
      </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="return this.getValue().isNumeric();"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getMode" unique="false" eType="#//Mode">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _value = this.getValue();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;if (_value!=null)&#xA;{&#xA;&#x9;_mode=_value.getMode();&#xA;}&#xA;return _mode;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//ModeLabel"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LocalModeLabelRef" eSuperTypes="#//ILocalModeValueSource">
    <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="return this.getValue().isEnum();"/>
      </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="return this.getValue().isNumeric();"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getMode" unique="false" eType="#//Mode">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.LocalModeLabel%> _value = this.getValue();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;if (_value!=null)&#xA;{&#xA;&#x9;_mode=_value.getMode();&#xA;}&#xA;return _mode;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//LocalModeLabel"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ChannelFillRef" eSuperTypes="#//ILocalModeValueSource">
    <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="return true;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Channel"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ArithmeticExpression" eSuperTypes="#//ILocalModeValueSource">
    <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="return true;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="operand1" eType="#//ILocalModeValueSource"
        containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="operand2" eType="#//ILocalModeValueSource"
        containment="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" unique="false"
        eType="#//ArithmeticOperator"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ArithmeticOperator">
    <eLiterals name="_undefined_"/>
    <eLiterals name="ADD"/>
    <eLiterals name="SUBTRACT"/>
    <eLiterals name="MULTIPLY"/>
    <eLiterals name="MODULO"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAssignment" eSuperTypes="#//ActivityGraphItem">
    <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="globalLabel" lowerBound="1"
        eType="#//ModeLabel"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="localLabel" lowerBound="1"
        eType="#//LocalModeLabel"/>
  </eClassifiers>
</ecore:EPackage>
