blob: 4080cd3763399fe426556ae3ae5f820635bbcf8d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.6" nsPrefix="am">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
<details key="modelName" value="Amalthea"/>
<details key="prefix" value="Amalthea"/>
<details key="editDirectory" value="/org.eclipse.app4mc.amalthea.model.edit/src-gen"/>
<details key="editorDirectory" value="/org.eclipse.app4mc.amalthea.model.editor/src-gen"/>
<details key="rootExtendsClass" value="org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedEObjectImpl"/>
<details key="providerRootExtendsClass" value="org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedItemProviderAdapter"/>
<details key="creationIcons" value="false"/>
<details key="forceOverwrite" value="true"/>
<details key="creationSubmenus" value="true"/>
<details key="publicationLocation" value="org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml"/>
<details key="loadInitialization" value="false"/>
<details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA; Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
<details key="decoration" value="Live"/>
<details key="collapseAllAction" value="true"/>
<details key="expandAllAction" value="true"/>
<details key="autoExpandProperties" value="1"/>
<details key="eclipsePlatformVersion" value="Photon"/>
<details key="basePackage" value="org.eclipse.app4mc.amalthea"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="Amalthea" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="get" value="return &quot;0.9.6&quot;;"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="commonElements" eType="#//CommonElements"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="swModel" eType="#//SWModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="hwModel" eType="#//HWModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="osModel" eType="#//OSModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="stimuliModel" eType="#//StimuliModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eventModel" eType="#//EventModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="constraintsModel" eType="#//ConstraintsModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="propertyConstraintsModel"
eType="#//PropertyConstraintsModel" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappingModel" eType="#//MappingModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentsModel" eType="#//ComponentsModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="configModel" eType="#//ConfigModel"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="measurementModel" eType="#//MeasurementModel"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CommonElements" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="coreClassifiers" upperBound="-1"
eType="#//CoreClassifier" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassifiers" upperBound="-1"
eType="#//MemoryClassifier" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BaseObject" abstract="true" eSuperTypes="#//IAnnotatable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Base classes to be used to provide common functionality for all objects.&#xA;Needs to be extended by other classes."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReferableObject" abstract="true" eSuperTypes="#//IReferable"/>
<eClassifiers xsi:type="ecore:EClass" name="ReferableBaseObject" abstract="true"
eSuperTypes="#//IAnnotatable #//IReferable"/>
<eClassifiers xsi:type="ecore:EClass" name="IAnnotatable" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IAnnotatable: Possibility to store custom properties on elements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="customProperties" upperBound="-1"
eType="#//CustomProperty" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ITaggable" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ITaggable: Possibility to add tags to an elements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="INamed" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="INamed: Name attribute"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Main"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IReferable" abstract="true" interface="true"
eSuperTypes="#//INamed">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IReferable: Computed ID for name based references"/>
</eAnnotations>
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
<details key="body" value="return &quot;&quot;;"/>
</eAnnotations>
</eOperations>
<eOperations name="encode" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}"/>
</eAnnotations>
<eParameters name="str" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eOperations>
<eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueName" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
changeable="false" volatile="true" transient="true" derived="true" iD="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IDisplayName" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyMultiLine" value="true"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//ReferableBaseObject #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A tag for processes, runnables, events and labels"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="tagType" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="taggedObjects" upperBound="-1"
eType="#//ITaggable" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to the this tag.&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iTaggable_Tags = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getITaggable_Tags();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ITaggable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTag_TaggedObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iTaggable_Tags)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
<eLiterals name="_undefined_"/>
<eLiterals name="EQUAL"/>
<eLiterals name="NOT_EQUAL"/>
<eLiterals name="LESS_THAN"/>
<eLiterals name="GREATER_THAN"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//ReferableBaseObject #//IDescription">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Classifiers for hardware properties"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CoreClassifier" eSuperTypes="#//Classifier"/>
<eClassifiers xsi:type="ecore:EClass" name="MemoryClassifier" eSuperTypes="#//Classifier"/>
<eClassifiers xsi:type="ecore:EClass" name="TransmissionPolicy">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Data transmission details for communication (e.g. LabelAccesses)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="chunkSize" eType="#//DataSize"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="chunkProcessingTicks" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="transmitRatio" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
defaultValueLiteral="1.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Quantity" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Abstract class for Quantities (value + unit)"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TimeUnit">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Time units (enumeration of available units)"/>
</eAnnotations>
<eLiterals name="_undefined_"/>
<eLiterals name="s"/>
<eLiterals name="ms"/>
<eLiterals name="us"/>
<eLiterals name="ns"/>
<eLiterals name="ps"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeComparable" instanceTypeName="java.lang.Comparable&lt;org.eclipse.app4mc.amalthea.model.Time>"
abstract="true" interface="true"/>
<eClassifiers xsi:type="ecore:EClass" name="Time" eSuperTypes="#//Quantity #//Value #//TimeComparable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="General time class to define time value and unit."/>
</eAnnotations>
<eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"/>
</eOperations>
<eOperations name="divide" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Value"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Value" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Abstract generalization of a value entry."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ListObject" eSuperTypes="#//Value">
<eStructuralFeatures xsi:type="ecore:EReference" name="values" upperBound="-1"
eType="#//Value" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyMultiLine" value="true"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BigIntegerObject" eSuperTypes="#//Value">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="min" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="avg" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
defaultValueLiteral="0f"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="max" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueInterval" abstract="true">
<eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueConstant" eSuperTypes="#//IDiscreteValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"
defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DiscreteValueHistogram" eSuperTypes="#//IDiscreteValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
<eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
<eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueInterval" abstract="true">
<eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueConstant" eSuperTypes="#//IContinuousValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ContinuousValueHistogram" eSuperTypes="#//IContinuousValueDeviation">
<eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
</eAnnotations>
<eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
<eParameters name="context" unique="false">
<eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
<eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
</eGenericType>
</eParameters>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
eType="#//ModeLiteral" containment="true" resolveProxies="false" eOpposite="#//ModeLiteral/containingMode"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLiteral" eSuperTypes="#//ReferableBaseObject">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;literal>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getName();&#xA;}&#xA;return _xifexpression;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingMode" eType="#//EnumMode"
changeable="false" eOpposite="#//EnumMode/literals">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="Address" instanceClassName="long">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Hardware Address (long; specified as hexadecimal value)"/>
<details key="create" value="&lt;%java.lang.Long%> _xifexpression = null;&#xA;if ((it != null))&#xA;{&#xA;&#x9;&lt;%java.lang.Long%> _xifexpression_1 = null;&#xA;&#x9;if ((it.startsWith(&quot;-&quot;) || it.startsWith(&quot;+&quot;)))&#xA;&#x9;{&#xA;&#x9;&#x9;throw new &lt;%java.lang.NumberFormatException%>(&quot;Sign character&quot;);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression_1 = &lt;%java.lang.Long%>.decode(it);&#xA;&#x9;}&#xA;&#x9;_xifexpression = _xifexpression_1;&#xA;}&#xA;return (_xifexpression).longValue();"/>
<details key="convert" value="&lt;%java.lang.String%> _hexString = &lt;%java.lang.Long%>.toHexString(it);&#xA;return (&quot;0x&quot; + _hexString);"/>
</eAnnotations>
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="PositiveInt" instanceClassName="int">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minExclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="PositiveLong" instanceClassName="long">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minExclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="PositiveDouble" instanceClassName="double">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minExclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="NonNegativeInt" instanceClassName="int">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="NonNegativeLong" instanceClassName="long">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="NonNegativeDouble" instanceClassName="double">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="minInclusive" value="0"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
eType="#//Component" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
eType="#//System" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ISystem" abstract="true" interface="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstances" upperBound="-1"
eType="#//ComponentInstance" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
eType="#//Connector" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="groundedPorts" upperBound="-1"
eType="#//QualifiedPort" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
eType="#//QualifiedPort" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.getInnerPorts(this);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingComponent" eType="#//Component"
changeable="false" eOpposite="#//Component/ports">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//Port" containment="true" resolveProxies="false" eOpposite="#//Port/containingComponent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
eType="#//AbstractProcess"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
eType="#//Semaphore"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
eType="#//OsEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Composite" eSuperTypes="#//Component #//ISystem"/>
<eClassifiers xsi:type="ecore:EClass" name="System" eSuperTypes="#//ReferableBaseObject #//ITaggable #//ISystem"/>
<eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Component"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//BaseObject #//INamed #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="sourcePort" eType="#//QualifiedPort"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetPort" eType="#//QualifiedPort"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="QualifiedPort" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="#//ComponentInstance"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InterfacePort" eSuperTypes="#//Port">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceName" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="InterfaceKind">
<eLiterals name="_undefined_"/>
<eLiterals name="provides"/>
<eLiterals name="requires"/>
<eLiterals name="provides_requires"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConfigModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventsToTrace" upperBound="-1"
eType="#//EventConfig" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventConfig" eSuperTypes="#//BaseObject #//INamed">
<eStructuralFeatures xsi:type="ecore:EReference" name="event" lowerBound="1" eType="#//EntityEvent"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConstraintsModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChains" upperBound="-1"
eType="#//EventChain" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="timingConstraints" upperBound="-1"
eType="#//TimingConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="affinityConstraints" upperBound="-1"
eType="#//AffinityConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableSequencingConstraints"
upperBound="-1" eType="#//RunnableSequencingConstraint" containment="true"
resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataAgeConstraints" upperBound="-1"
eType="#//DataAgeConstraint" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="requirements" upperBound="-1"
eType="#//Requirement" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataCoherencyGroups" upperBound="-1"
eType="#//DataCoherencyGroup" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="dataStabilityGroups" upperBound="-1"
eType="#//DataStabilityGroup" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="physicalSectionConstraints"
upperBound="-1" eType="#//PhysicalSectionConstraint" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RunnableOrderType">
<eLiterals name="_undefined_"/>
<eLiterals name="successor"/>
<eLiterals name="immediateSuccessorStartSequence"/>
<eLiterals name="immediateSuccessorAnySequence"/>
<eLiterals name="immediateSuccessorEndSequence"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableSequencingConstraint" eSuperTypes="#//ReferableBaseObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="orderType" unique="false"
eType="#//RunnableOrderType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnableGroups" lowerBound="2"
upperBound="-1" eType="#//RunnableEntityGroup" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processScope" upperBound="-1"
eType="#//AbstractProcess"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AffinityConstraint" abstract="true"
eSuperTypes="#//ReferableBaseObject"/>
<eClassifiers xsi:type="ecore:EClass" name="SeparationConstraint" abstract="true"
eSuperTypes="#//AffinityConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all separation constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PairingConstraint" abstract="true" eSuperTypes="#//AffinityConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all pairing constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessConstraint" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all process related constraint&#xA;The target describes the entity on which the processes can be mapped"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//ProcessConstraintTarget"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableConstraint" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all runnable related constraint&#xA;The target describes the entity on which the runnables can be mapped"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//RunnableConstraintTarget"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataConstraint" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all data related constraint&#xA;The target describes the entity on which the data can be mapped"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//DataConstraintTarget"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableSeparationConstraint" eSuperTypes="#//SeparationConstraint #//RunnableConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A runnable-separation-constraint&#xA;groups describes the runnable-groups that should be separated from each other on the target&#xA;if there is only one group then this means that the runnables of this group are not allowed to be executed on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
upperBound="2" eType="#//RunnableGroup" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessSeparationConstraint" eSuperTypes="#//SeparationConstraint #//ProcessConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A process-separation-constraint&#xA;groups describes the process-groups that should be separated from each other on the target&#xA;if there is only one group then this means that the processes of this group are not allowed to be executed on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
upperBound="2" eType="#//ProcessGroup" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataSeparationConstraint" eSuperTypes="#//SeparationConstraint #//DataConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A data-separation-constraint&#xA;groups describes the label-groups that should be separated from each other on the target&#xA;if there is only one group then this means that the label of this group is not allowed to be executed on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
upperBound="2" eType="#//LabelEntityGroup" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnablePairingConstraint" eSuperTypes="#//PairingConstraint #//RunnableConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A runnable-pairing-constraint&#xA;runnables describes the group of runnables that should be paired on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" lowerBound="1" eType="#//RunnableGroup"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessPairingConstraint" eSuperTypes="#//PairingConstraint #//ProcessConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A process-pairing-constraint&#xA;processes describes the group of processes that should be paired on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" lowerBound="1" eType="#//ProcessGroup"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataPairingConstraint" eSuperTypes="#//PairingConstraint #//DataConstraint #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A data-pairing-constraint&#xA;labels describes the group of labels that should be paired on the target"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" lowerBound="1" eType="#//LabelGroup"
containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableConstraintTarget" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all possible targets for runnable-constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessConstraintTarget" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all possible targets for process-constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataConstraintTarget" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract superclass for all possible targets for data-constraints"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TargetMemory" eSuperTypes="#//DataConstraintTarget #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A memory target description&#xA;A memory can be a target for data-constraints&#xA;memories: the reference to zero or more Memories. If this list is empty, the target stands for all memories!"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="memories" upperBound="-1"
eType="#//Memory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TargetCore" eSuperTypes="#//RunnableConstraintTarget #//ProcessConstraintTarget #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A core target description&#xA;A core can be a target for runnable-constraints, process-constraints and scheduler-constraints&#xA;cores: the reference to zero or more Cores. If this list is empty, the target stands for all cores!"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="cores" upperBound="-1"
eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TargetScheduler" eSuperTypes="#//RunnableConstraintTarget #//ProcessConstraintTarget #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A scheduler target description&#xA;A scheduler can be a target for runnable-constraints and process-constraints&#xA;schedulers: the reference to zero or more Schedulers. If this list is empty, the target stands for all schedulers!"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="schedulers" upperBound="-1"
eType="#//Scheduler"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelGroup" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for a group of labels that can be paired or separated by a runnable-constraint"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableGroup" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for a group of runnables that can be paired or separated by a runnable-constraint"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessGroup" abstract="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An abstract description for a group of processes that can be paired or separated by a process-constraint"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelEntityGroup" eSuperTypes="#//LabelGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group of labels that can be paired or separated by a data-constraint"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="labels" lowerBound="1"
upperBound="-1" eType="#//Label"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableEntityGroup" eSuperTypes="#//RunnableGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group of runnables that can be paired or separated by a runnable-constraint"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnables" lowerBound="1"
upperBound="-1" eType="#//Runnable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessEntityGroup" eSuperTypes="#//ProcessGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group of processes that can be paired or separated by a process-constraint"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="processes" lowerBound="1"
upperBound="-1" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TagGroup" eSuperTypes="#//RunnableGroup #//ProcessGroup #//BaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A group that contains only a tag and groups all objects that are marked with this tag&#xA;This can be runnables or processes"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="tag" lowerBound="1" eType="#//Tag"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractEventChain" abstract="true"
eSuperTypes="#//BaseObject #//INamed">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes an event chain which must have a minimum of two events (stimulus and response)&#xA;If there are more events the event chain have to be divided into segments. Each segment is another event chain.&#xA;Alternative event paths are contained in strands.&#xA;stimulus: Beginning of chain&#xA;response: End of chain&#xA;segments: Sub event chains&#xA;strands: alternative event paths"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="stimulus" lowerBound="1"
eType="#//Event"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="response" lowerBound="1"
eType="#//Event"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
eType="#//EventChainItem" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="itemType" unique="false"
eType="#//EventChainItemType"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="minItemsCompleted" unique="false"
eType="#//PositiveInt" defaultValueLiteral="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="EventChainItemType">
<eLiterals name="_undefined_"/>
<eLiterals name="sequence"/>
<eLiterals name="parallel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChain" eSuperTypes="#//AbstractEventChain #//IReferable"/>
<eClassifiers xsi:type="ecore:EClass" name="SubEventChain" eSuperTypes="#//AbstractEventChain"/>
<eClassifiers xsi:type="ecore:EClass" name="EventChainItem" abstract="true" interface="true">
<eOperations name="getEventChain" unique="false" eType="#//AbstractEventChain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainReference" eSuperTypes="#//BaseObject #//EventChainItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChain" lowerBound="1"
eType="#//EventChain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventChainContainer" eSuperTypes="#//BaseObject #//EventChainItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="eventChain" lowerBound="1"
eType="#//SubEventChain" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimingConstraint" abstract="true" eSuperTypes="#//ReferableBaseObject"/>
<eClassifiers xsi:type="ecore:EClass" name="PhysicalSectionConstraint" eSuperTypes="#//ReferableBaseObject">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This contraints is used to limit a section in Memories"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="section" lowerBound="1"
eType="#//Section"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="memories" lowerBound="1"
upperBound="-1" eType="#//Memory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SynchronizationConstraint" abstract="true"
eSuperTypes="#//TimingConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Base class for synchronization constraints, which limit the distance between events&#xA;multipleOccurrencesAllowed: Defines whether multiple event occurrences are allowed for analysis&#xA;tolerance: Maximum allowed tolerance"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleOccurrencesAllowed"
unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCycle" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="explicitTriggers" upperBound="-1"
eType="#//CustomEventTrigger" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of triggers (CustomEventTrigger).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _customEventTrigger_Event = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getCustomEventTrigger_Event();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.CustomEventTrigger%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getCustomEvent_ExplicitTriggers(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_customEventTrigger_Event)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StimulusEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a stimulus.&#xA;It contains only the stimulus but no event type because a stimulus has only one event type."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Stimulus"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a process&#xA;eventType: The type of the Event&#xA;entity: The process that fires the event (optional)&#xA;processingUnit: The processing unit that executes the process when the event is fired (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ProcessEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessChainEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of some process within a process chain&#xA;eventType: The type of the Event&#xA;entity: The process that fires the event (optional)&#xA;processingUnit: The processing unit that executes the process when the event is fired (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ProcessEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//ProcessChain"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RunnableEvent" eSuperTypes="#//TriggerEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a runnable&#xA;eventType: The type of event&#xA;entity: The runnable that fires the event (optional)&#xA;process: The process that executes the runnable (optional)&#xA;processingUnit: The processing unit that executes the runnable (executes the process that calls the runnable) (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//RunnableEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LabelEvent" eSuperTypes="#//TriggerEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a label access&#xA;eventType: The type of event&#xA;entity: The accessed label that fires the event (optional)&#xA;runnable: The runnable that accesses the label (optional)&#xA;process: The process that accesses the label (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//LabelEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Label"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChannelEvent" eSuperTypes="#//TriggerEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a channel access&#xA;eventType: The type of event&#xA;entity: The accessed channel that fires the event (optional)&#xA;runnable: The runnable that accesses the label (optional)&#xA;process: The process that accesses the label (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ChannelEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Channel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SemaphoreEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a semaphore access&#xA;eventType: The type of event&#xA;entity: The accessed semaphore that fires the event (optional)&#xA;runnable: The runnable that accesses the semaphore (optional)&#xA;process: The process that accesses the semaphore (optional)&#xA;processingUnit: The processing unit that executes the process/runnable that accesses the semaphore (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//SemaphoreEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Semaphore"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="runnable" eType="#//Runnable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="process" eType="#//Process"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="processingUnit" eType="#//ProcessingUnit"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentEvent" eSuperTypes="#//EntityEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes the event of a component&#xA;eventType: The type of event&#xA;entity: The component that fires the event (optional)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
eType="#//ComponentEventType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="entity" eType="#//Component"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ProcessEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a process event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="activate"/>
<eLiterals name="deadline"/>
<eLiterals name="start"/>
<eLiterals name="resume"/>
<eLiterals name="preempt"/>
<eLiterals name="poll"/>
<eLiterals name="run"/>
<eLiterals name="wait"/>
<eLiterals name="poll_parking"/>
<eLiterals name="park"/>
<eLiterals name="release_parking"/>
<eLiterals name="release"/>
<eLiterals name="terminate"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RunnableEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a runnable event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="start"/>
<eLiterals name="suspend"/>
<eLiterals name="resume"/>
<eLiterals name="terminate"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LabelEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a label event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="read"/>
<eLiterals name="write"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ChannelEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a label event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="send"/>
<eLiterals name="receive"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="SemaphoreEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a semaphore event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="lock"/>
<eLiterals name="unlock"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ComponentEventType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The types of a component event"/>
</eAnnotations>
<eLiterals name="_all_"/>
<eLiterals name="start"/>
<eLiterals name="end"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HWModel" eSuperTypes="#//BaseObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="definitions" upperBound="-1"
eType="#//HwDefinition" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="featureCategories" upperBound="-1"
eType="#//HwFeatureCategory" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
eType="#//HwStructure" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="domains" upperBound="-1"
eType="#//HwDomain" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwStructure" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
eType="#//StructureType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//HwPort" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
eType="#//HwStructure" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="modules" upperBound="-1"
eType="#//HwModule" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
eType="#//HwConnection" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
eType="#//HwPort" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.getInnerPorts(this);"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwModule" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
eType="#//HwPort" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="powerDomain" eType="#//PowerDomain"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="frequencyDomain" eType="#//FrequencyDomain"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwDomain" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable"/>
<eClassifiers xsi:type="ecore:EClass" name="FrequencyDomain" eSuperTypes="#//HwDomain">
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Frequency"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="clockGating" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProcessingUnit" eSuperTypes="#//HwModule #//HwDestination #//HwPathElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//ProcessingUnitDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="accessElements" upperBound="-1"
eType="#//HwAccessElement" containment="true" resolveProxies="false" eOpposite="#//HwAccessElement/source"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="caches" upperBound="-1"
eType="#//Cache" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Memory" eSuperTypes="#//HwModule #//HwDestination">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//MemoryDefinition"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="mappings" upperBound="-1"
eType="#//MemoryMapping" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of mappings (MemoryMapping).&lt;/b>&lt;/p>"/>
<details key="propertyCategory" value="Read only"/>
<details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
<details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _memoryMapping_Memory = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getMemoryMapping_Memory();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.MemoryMapping%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getMemory_Mappings(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_memoryMapping_Memory)));"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MemoryType">
<eLiterals name="_undefined_"/>
<eLiterals name="DRAM"/>
<eLiterals name="SRAM"/>
<eLiterals name="FLASH"/>
<eLiterals name="PCM"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Cache" eSuperTypes="#//HwModule #//HwPathElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" eType="#//CacheDefinition"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwFeatureCategory" eSuperTypes="#//ReferableBaseObject #//IDescription">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="featureType" unique="false"
eType="#//HwFeatureType"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
eType="#//HwFeature" containment="true" resolveProxies="false" eOpposite="#//HwFeature/containingCategory"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwFeature" eSuperTypes="#//ReferableBaseObject">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HwPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
<eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="bitWidth" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
defaultValueLiteral="0"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.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 ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
changeable