<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_232) on Mon Feb 03 14:26:20 CET 2020 -->
<title>RuntimeUtil</title>
<meta name="date" content="2020-02-03">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
</head>
<body>
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.app4mc.amalthea.model.util</div>
<h2 title="Class RuntimeUtil" class="title">Class RuntimeUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>Object</li>
<li>
<ul class="inheritance">
<li>RuntimeUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">RuntimeUtil</span>
extends Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.AccessDirection.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.AccessDirection</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="#RuntimeUtil--">RuntimeUtil</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static Runnable</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">addRuntimeToProcessAsNewRunnable</a></span>(Process&nbsp;process,
                                ExecutionNeed&nbsp;need,
                                String&nbsp;runnableName,
                                <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</code>
<div class="block">Creates a new Runnable with the given runtime at beginning / end of the given process</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static Runnable</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Ticks-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">addRuntimeToProcessAsNewRunnable</a></span>(Process&nbsp;process,
                                Ticks&nbsp;ticks,
                                String&nbsp;runnableName,
                                <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</code>
<div class="block">Creates a new Runnable with the given runtime at beginning / end of the given process</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-">addRuntimeToRunnable</a></span>(Runnable&nbsp;runnable,
                    ExecutionNeed&nbsp;need)</code>
<div class="block">Adds Runtime (given as ExecutionNeed) to an existing Runnable currently
 without consideration of modes</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-">addRuntimeToRunnable</a></span>(Runnable&nbsp;runnable,
                    Ticks&nbsp;ticks)</code>
<div class="block">Adds Runtime (given as Ticks) to an existing Runnable currently
 without consideration of modes</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#clearRuntimeOfModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.emf.common.util.EMap-">clearRuntimeOfModel</a></span>(Amalthea&nbsp;model,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Clears all runtime information (execution needs and ticks)</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#clearRuntimeOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">clearRuntimeOfProcess</a></span>(Process&nbsp;process,
                     EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Clears all runtime information (execution needs and ticks)</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#clearRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">clearRuntimeOfRunnable</a></span>(Runnable&nbsp;runnable,
                      EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Clears all runtime information (execution needs and ticks)</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static Map&lt;Process,Double&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getCumulativeProcessUtilizations-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getCumulativeProcessUtilizations</a></span>(Amalthea&nbsp;model,
                                <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                List&lt;HwFeature&gt;&nbsp;hwFeatures,
                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns the cumulative process utilization, i.e. runtime on every procUnit summed up</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForCycles-double-org.eclipse.app4mc.amalthea.model.Frequency-">getExecutionTimeForCycles</a></span>(double&nbsp;ticks,
                         Frequency&nbsp;frequency)</code>
<div class="block">Computes time for a number of ticks with a given frequency</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForExecutionNeedEntry-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForExecutionNeedEntry</a></span>(IDiscreteValueDeviation&nbsp;deviation,
                                     HwFeatureCategory&nbsp;hwFeatureCategory,
                                     ProcessingUnit&nbsp;processingUnit,
                                     <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes time for specific execution need entry on a given processing unit</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForExecutionNeeds-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForExecutionNeeds</a></span>(ExecutionNeed&nbsp;need,
                                 ProcessingUnit&nbsp;processingUnit,
                                 <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes time for execution needs on a given processing unit</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForProcess</a></span>(Process&nbsp;process,
                          EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                          <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes the execution time of a Process (Task or ISR) - unique mapping is required</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForProcess</a></span>(Process&nbsp;process,
                          ProcessingUnit&nbsp;processingUnit,
                          EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                          <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes the execution time of a Process (Task or ISR) on a given processing unit</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForRunnable</a></span>(Runnable&nbsp;runnable,
                           ProcessingUnit&nbsp;processingUnit,
                           EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                           <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes the execution time of a Runnable on a given processing unit</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForTicks-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForTicks</a></span>(Ticks&nbsp;ticks,
                        ProcessingUnit&nbsp;processingUnit,
                        <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes time for ticks on a given processing unit</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static Time</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionTimeForTicksDeviation-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getExecutionTimeForTicksDeviation</a></span>(IDiscreteValueDeviation&nbsp;deviation,
                                 ProcessingUnit&nbsp;processingUnit,
                                 <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</code>
<div class="block">Computes time for ticks on a given processing unit</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static Map&lt;Process,List&lt;Time&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getPeriodsOfAllProcesses-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">getPeriodsOfAllProcesses</a></span>(Amalthea&nbsp;model,
                        <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Gets all Period ranges from the model</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static List&lt;Time&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getPeriodsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">getPeriodsOfProcess</a></span>(Process&nbsp;process,
                   <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all triggering periods.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;Map&lt;Stimulus,Long&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getPlainTriggerForProcess-org.eclipse.app4mc.amalthea.model.Process-long-java.util.function.Function-">getPlainTriggerForProcess</a></span>(Process&nbsp;process,
                         long&nbsp;depthCounter,
                         Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</code>
<div class="block">Returns all stimuli (matching filter) that trigger the given process</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;Map&lt;Process,Map&lt;Stimulus,Long&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getPlainTriggersForModel-org.eclipse.app4mc.amalthea.model.Amalthea-java.util.function.Function-">getPlainTriggersForModel</a></span>(Amalthea&nbsp;model,
                        Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</code>
<div class="block">Returns a map from process to all stimuli (matching filter) that
 lead to that process with the correct prescaler</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static Map&lt;Process,List&lt;ITimeDeviation&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-">getProcessesWithRelativePeriodicStimulus</a></span>(Amalthea&nbsp;model)</code>
<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static Map&lt;Process,List&lt;Time&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getProcessesWithRelativePeriodicStimulus</a></span>(Amalthea&nbsp;model,
                                        <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt)</code>
<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static Map&lt;ProcessingUnit,Double&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getProcessUtilization</a></span>(Process&nbsp;process,
                     Amalthea&nbsp;model,
                     <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                     List&lt;HwFeature&gt;&nbsp;hwFeatures,
                     EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Calculates the utilization for a given process</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getProcessUtilization</a></span>(Process&nbsp;process,
                     ProcessingUnit&nbsp;procUnit,
                     Amalthea&nbsp;model,
                     <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                     List&lt;HwFeature&gt;&nbsp;hwFeatures,
                     EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Calculates the utilization for a given process on a given procUnit
 
 Assumption (wrong): All triggers activate the process on all procUnits together!</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">getProcessUtilization</a></span>(Process&nbsp;process,
                     Time&nbsp;period,
                     <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                     EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Calculates the process utilization</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getProcUnitUtilization-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">getProcUnitUtilization</a></span>(ProcessingUnit&nbsp;procUnit,
                      Amalthea&nbsp;model,
                      <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                      List&lt;HwFeature&gt;&nbsp;hwFeatures,
                      EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Calculates the utilization for a given procUnit</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static HashMap&lt;Stimulus,Long&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getTriggeredStimuli-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getTriggeredStimuli</a></span>(Process&nbsp;process,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map of all stimuli, triggered by this process, associated with its prescaler.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static Map&lt;Process,Long&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getTriggeringProcesses-org.eclipse.app4mc.amalthea.model.InterProcessStimulus-org.eclipse.emf.common.util.EMap-">getTriggeringProcesses</a></span>(InterProcessStimulus&nbsp;ip,
                      EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns all Processes that trigger the given InterProcessStimulus</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.emf.common.util.EMap-">setRuntimeOfRunnable</a></span>(Runnable&nbsp;runnable,
                    ExecutionNeed&nbsp;need,
                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Sets the runtime of the given runnable to the given ExecutionNeed</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.emf.common.util.EMap-">setRuntimeOfRunnable</a></span>(Runnable&nbsp;runnable,
                    Ticks&nbsp;ticks,
                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Sets the runtime of the given runnable to the given Ticks</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="RuntimeUtil--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RuntimeUtil</h4>
<pre>public&nbsp;RuntimeUtil()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForProcess</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForProcess(Process&nbsp;process,
                                              EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                              <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes the execution time of a Process (Task or ISR) - unique mapping is required</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - task or isr</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="getExecutionTimeForProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForProcess</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForProcess(Process&nbsp;process,
                                              ProcessingUnit&nbsp;processingUnit,
                                              EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                              <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes the execution time of a Process (Task or ISR) on a given processing unit</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - task or isr</dd>
<dd><code>processingUnit</code> - executing processing unit</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="getExecutionTimeForRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForRunnable</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForRunnable(Runnable&nbsp;runnable,
                                               ProcessingUnit&nbsp;processingUnit,
                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                               <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes the execution time of a Runnable on a given processing unit</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>processingUnit</code> - executing processing unit</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="getExecutionTimeForTicks-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForTicks</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForTicks(Ticks&nbsp;ticks,
                                            ProcessingUnit&nbsp;processingUnit,
                                            <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes time for ticks on a given processing unit</div>
</li>
</ul>
<a name="getExecutionTimeForTicksDeviation-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForTicksDeviation</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForTicksDeviation(IDiscreteValueDeviation&nbsp;deviation,
                                                     ProcessingUnit&nbsp;processingUnit,
                                                     <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes time for ticks on a given processing unit</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviation</code> - ticks deviation</dd>
<dd><code>processingUnit</code> - executing processing unit</dd>
<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="getExecutionTimeForExecutionNeeds-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForExecutionNeeds</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForExecutionNeeds(ExecutionNeed&nbsp;need,
                                                     ProcessingUnit&nbsp;processingUnit,
                                                     <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes time for execution needs on a given processing unit</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>need</code> - execution need</dd>
<dd><code>processingUnit</code> - executing processing unit</dd>
<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="getExecutionTimeForExecutionNeedEntry-org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation-org.eclipse.app4mc.amalthea.model.HwFeatureCategory-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForExecutionNeedEntry</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForExecutionNeedEntry(IDiscreteValueDeviation&nbsp;deviation,
                                                         HwFeatureCategory&nbsp;hwFeatureCategory,
                                                         ProcessingUnit&nbsp;processingUnit,
                                                         <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;executionCase)</pre>
<div class="block">Computes time for specific execution need entry on a given processing unit</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviation</code> - needs deviation</dd>
<dd><code>hwFeatureCategory</code> - corresponding feature category</dd>
<dd><code>processingUnit</code> - executing processing unit</dd>
<dd><code>executionCase</code> - BCET, ACET, WCET</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="getExecutionTimeForCycles-double-org.eclipse.app4mc.amalthea.model.Frequency-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionTimeForCycles</h4>
<pre>public static&nbsp;Time&nbsp;getExecutionTimeForCycles(double&nbsp;ticks,
                                             Frequency&nbsp;frequency)</pre>
<div class="block">Computes time for a number of ticks with a given frequency</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ticks</code> - ticks / cycles</dd>
<dd><code>frequency</code> - frequency (of an executing processing unit)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>execution time</dd>
</dl>
</li>
</ul>
<a name="setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRuntimeOfRunnable</h4>
<pre>public static&nbsp;void&nbsp;setRuntimeOfRunnable(Runnable&nbsp;runnable,
                                        ExecutionNeed&nbsp;need,
                                        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Sets the runtime of the given runnable to the given ExecutionNeed</div>
</li>
</ul>
<a name="setRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRuntimeOfRunnable</h4>
<pre>public static&nbsp;void&nbsp;setRuntimeOfRunnable(Runnable&nbsp;runnable,
                                        Ticks&nbsp;ticks,
                                        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Sets the runtime of the given runnable to the given Ticks</div>
</li>
</ul>
<a name="addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.ExecutionNeed-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRuntimeToRunnable</h4>
<pre>public static&nbsp;void&nbsp;addRuntimeToRunnable(Runnable&nbsp;runnable,
                                        ExecutionNeed&nbsp;need)</pre>
<div class="block">Adds Runtime (given as ExecutionNeed) to an existing Runnable currently
 without consideration of modes</div>
</li>
</ul>
<a name="addRuntimeToRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.app4mc.amalthea.model.Ticks-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRuntimeToRunnable</h4>
<pre>public static&nbsp;void&nbsp;addRuntimeToRunnable(Runnable&nbsp;runnable,
                                        Ticks&nbsp;ticks)</pre>
<div class="block">Adds Runtime (given as Ticks) to an existing Runnable currently
 without consideration of modes</div>
</li>
</ul>
<a name="clearRuntimeOfModel-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearRuntimeOfModel</h4>
<pre>public static&nbsp;void&nbsp;clearRuntimeOfModel(Amalthea&nbsp;model,
                                       EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Clears all runtime information (execution needs and ticks)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - Amalthea model</dd>
<dd><code>modes</code> - (optional) - null works</dd>
</dl>
</li>
</ul>
<a name="clearRuntimeOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearRuntimeOfProcess</h4>
<pre>public static&nbsp;void&nbsp;clearRuntimeOfProcess(Process&nbsp;process,
                                         EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Clears all runtime information (execution needs and ticks)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - task or isr</dd>
<dd><code>modes</code> - (optional) - null works</dd>
</dl>
</li>
</ul>
<a name="clearRuntimeOfRunnable-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearRuntimeOfRunnable</h4>
<pre>public static&nbsp;void&nbsp;clearRuntimeOfRunnable(Runnable&nbsp;runnable,
                                          EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Clears all runtime information (execution needs and ticks)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
</dl>
</li>
</ul>
<a name="addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ExecutionNeed-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRuntimeToProcessAsNewRunnable</h4>
<pre>public static&nbsp;Runnable&nbsp;addRuntimeToProcessAsNewRunnable(Process&nbsp;process,
                                                        ExecutionNeed&nbsp;need,
                                                        String&nbsp;runnableName,
                                                        <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</pre>
<div class="block">Creates a new Runnable with the given runtime at beginning / end of the given process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - containing process (task or isr)</dd>
<dd><code>need</code> - execution need</dd>
<dd><code>runnableName</code> - name of new runnable</dd>
<dd><code>positon</code> - FIRST, LAST</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new runnable</dd>
</dl>
</li>
</ul>
<a name="addRuntimeToProcessAsNewRunnable-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Ticks-java.lang.String-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.PositionType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRuntimeToProcessAsNewRunnable</h4>
<pre>public static&nbsp;Runnable&nbsp;addRuntimeToProcessAsNewRunnable(Process&nbsp;process,
                                                        Ticks&nbsp;ticks,
                                                        String&nbsp;runnableName,
                                                        <a href="RuntimeUtil.PositionType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.PositionType</a>&nbsp;positon)</pre>
<div class="block">Creates a new Runnable with the given runtime at beginning / end of the given process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - containing process (task or isr)</dd>
<dd><code>ticks</code> - ticks</dd>
<dd><code>runnableName</code> - name of new runnable</dd>
<dd><code>positon</code> - FIRST, LAST</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new runnable</dd>
</dl>
</li>
</ul>
<a name="getProcUnitUtilization-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcUnitUtilization</h4>
<pre>public static&nbsp;double&nbsp;getProcUnitUtilization(ProcessingUnit&nbsp;procUnit,
                                            Amalthea&nbsp;model,
                                            <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                            List&lt;HwFeature&gt;&nbsp;hwFeatures,
                                            EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Calculates the utilization for a given procUnit</div>
</li>
</ul>
<a name="getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessUtilization</h4>
<pre>public static&nbsp;Map&lt;ProcessingUnit,Double&gt;&nbsp;getProcessUtilization(Process&nbsp;process,
                                                               Amalthea&nbsp;model,
                                                               <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                                               List&lt;HwFeature&gt;&nbsp;hwFeatures,
                                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Calculates the utilization for a given process</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: procUnit -&gt; utilization</dd>
</dl>
</li>
</ul>
<a name="getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.ProcessingUnit-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessUtilization</h4>
<pre>public static&nbsp;double&nbsp;getProcessUtilization(Process&nbsp;process,
                                           ProcessingUnit&nbsp;procUnit,
                                           Amalthea&nbsp;model,
                                           <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                           List&lt;HwFeature&gt;&nbsp;hwFeatures,
                                           EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Calculates the utilization for a given process on a given procUnit
 <p>
 Assumption (wrong): All triggers activate the process on all procUnits together! (at the same time)</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>utilization</dd>
</dl>
</li>
</ul>
<a name="getProcessUtilization-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Time-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessUtilization</h4>
<pre>public static&nbsp;double&nbsp;getProcessUtilization(Process&nbsp;process,
                                           Time&nbsp;period,
                                           <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                           EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Calculates the process utilization</div>
</li>
</ul>
<a name="getCumulativeProcessUtilizations-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-java.util.List-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCumulativeProcessUtilizations</h4>
<pre>public static&nbsp;Map&lt;Process,Double&gt;&nbsp;getCumulativeProcessUtilizations(Amalthea&nbsp;model,
                                                                   <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                                                   List&lt;HwFeature&gt;&nbsp;hwFeatures,
                                                                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns the cumulative process utilization, i.e. runtime on every procUnit summed up</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: process -&gt; sum of utilization on all procUnits</dd>
</dl>
</li>
</ul>
<a name="getPeriodsOfAllProcesses-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPeriodsOfAllProcesses</h4>
<pre>public static&nbsp;Map&lt;Process,List&lt;Time&gt;&gt;&nbsp;getPeriodsOfAllProcesses(Amalthea&nbsp;model,
                                                               <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Gets all Period ranges from the model</div>
</li>
</ul>
<a name="getPeriodsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPeriodsOfProcess</h4>
<pre>public static&nbsp;List&lt;Time&gt;&nbsp;getPeriodsOfProcess(Process&nbsp;process,
                                             <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt,
                                             EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all triggering periods. Sorted by shortest period first!</div>
</li>
</ul>
<a name="getTriggeringProcesses-org.eclipse.app4mc.amalthea.model.InterProcessStimulus-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTriggeringProcesses</h4>
<pre>public static&nbsp;Map&lt;Process,Long&gt;&nbsp;getTriggeringProcesses(InterProcessStimulus&nbsp;ip,
                                                       EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns all Processes that trigger the given InterProcessStimulus</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: process -&gt; prescaler value</dd>
</dl>
</li>
</ul>
<a name="getTriggeredStimuli-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTriggeredStimuli</h4>
<pre>public static&nbsp;HashMap&lt;Stimulus,Long&gt;&nbsp;getTriggeredStimuli(Process&nbsp;process,
                                                         EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map of all stimuli, triggered by this process, associated with its prescaler.</div>
</li>
</ul>
<a name="getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessesWithRelativePeriodicStimulus</h4>
<pre>public static&nbsp;Map&lt;Process,List&lt;Time&gt;&gt;&nbsp;getProcessesWithRelativePeriodicStimulus(Amalthea&nbsp;model,
                                                                               <a href="RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;tt)</pre>
<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of processes with a sporadic activation and depending on tt the
         time between activations</dd>
</dl>
</li>
</ul>
<a name="getProcessesWithRelativePeriodicStimulus-org.eclipse.app4mc.amalthea.model.Amalthea-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessesWithRelativePeriodicStimulus</h4>
<pre>public static&nbsp;Map&lt;Process,List&lt;ITimeDeviation&gt;&gt;&nbsp;getProcessesWithRelativePeriodicStimulus(Amalthea&nbsp;model)</pre>
<div class="block">Returns a Map of all sporadically triggered processes with their prescaler</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of processes with a sporadic activation and the deviation of the
         activations</dd>
</dl>
</li>
</ul>
<a name="getPlainTriggersForModel-org.eclipse.app4mc.amalthea.model.Amalthea-java.util.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlainTriggersForModel</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;Map&lt;Process,Map&lt;Stimulus,Long&gt;&gt;&nbsp;getPlainTriggersForModel(Amalthea&nbsp;model,
                                                                           Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</pre>
<div class="block">Returns a map from process to all stimuli (matching filter) that
 lead to that process with the correct prescaler</div>
</li>
</ul>
<a name="getPlainTriggerForProcess-org.eclipse.app4mc.amalthea.model.Process-long-java.util.function.Function-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPlainTriggerForProcess</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;Map&lt;Stimulus,Long&gt;&nbsp;getPlainTriggerForProcess(Process&nbsp;process,
                                                               long&nbsp;depthCounter,
                                                               Function&lt;Stimulus,Boolean&gt;&nbsp;filter)</pre>
<div class="block">Returns all stimuli (matching filter) that trigger the given process</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</body>
</html>
