<!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>SoftwareUtil</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 SoftwareUtil" class="title">Class SoftwareUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>Object</li>
<li>
<ul class="inheritance">
<li>SoftwareUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">SoftwareUtil</span>
extends Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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="#SoftwareUtil--">SoftwareUtil</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 EList&lt;ActivityGraphItem&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-">collectActivityGraphItems</a></span>(IActivityGraphItemContainer&nbsp;container)</code>
<div class="block">Traverse the contained call graph items and collect all items.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static EList&lt;ActivityGraphItem&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-">collectActivityGraphItems</a></span>(IActivityGraphItemContainer&nbsp;container,
                         EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Traverse the contained call graph items and collect all items.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static &lt;T extends ActivityGraphItem&gt;<br>EList&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-java.lang.Class-">collectActivityGraphItems</a></span>(IActivityGraphItemContainer&nbsp;container,
                         EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                         Class&lt;T&gt;&nbsp;targetClass)</code>
<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static &lt;T extends ActivityGraphItem&gt;<br>EList&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-java.lang.Class-java.util.function.Function-">collectActivityGraphItems</a></span>(IActivityGraphItemContainer&nbsp;container,
                         EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                         Class&lt;T&gt;&nbsp;targetClass,
                         Function&lt;T,Boolean&gt;&nbsp;filter)</code>
<div class="block">Traverse the runnable items graph of a runnable and collect all items.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static EList&lt;ActivityGraphItem&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-java.util.function.Function-">collectActivityGraphItems</a></span>(IActivityGraphItemContainer&nbsp;container,
                         EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                         Function&lt;ActivityGraphItem,Boolean&gt;&nbsp;filter)</code>
<div class="block">Traverse the contained call graph items and collect all items.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static List&lt;ClearEvent&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectClearEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectClearEvents</a></span>(Process&nbsp;process,
                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Collects a list of clear event calls for a process</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static List&lt;ActivityGraphItem&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectEventsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectEventsOfProcess</a></span>(Process&nbsp;process,
                      EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Collects a list of event calls (clear, set or wait) of a process</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static List&lt;SetEvent&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectSetEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectSetEvents</a></span>(Process&nbsp;process,
                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Collects a list of set events calls for a process</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static List&lt;WaitEvent&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#collectWaitEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">collectWaitEvents</a></span>(Process&nbsp;process,
                 EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Collects a list of wait event calls for a process</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getAccessedLabelSet</a></span>(Process&nbsp;process,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of labels accessed by the process</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getAccessedLabelSet</a></span>(Runnable&nbsp;runnable,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of labels accessed from the runnable</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getCalledRunnables-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getCalledRunnables</a></span>(Runnable&nbsp;runnable,
                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of runnables directly called by the runnable</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static List&lt;Process&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getCallingProcesses-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getCallingProcesses</a></span>(Runnable&nbsp;runnable,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of processes calling the runnable</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getCallingRunnables-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getCallingRunnables</a></span>(Runnable&nbsp;runnable,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of runnables directly calling the runnable</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static List&lt;ExecutionNeed&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getExecutionNeeds</a></span>(Process&nbsp;process,
                 EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all execution needs for a given process</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static List&lt;ExecutionNeed&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getExecutionNeeds</a></span>(Runnable&nbsp;runnable,
                 EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all execution needs for a given runnable</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static List&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getInterTaskCommunication-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getInterTaskCommunication</a></span>(Process&nbsp;sender,
                         Process&nbsp;receiver,
                         EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all exchanged labels that are written by the sender process and read by the receiver process</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessCountFromStatistics-org.eclipse.app4mc.amalthea.model.LabelAccess-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getLabelAccessCountFromStatistics</a></span>(LabelAccess&nbsp;labelAcc,
                                 <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;accType)</code>
<div class="block">Returns the number of label accesses from a statistic.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getLabelAccessList</a></span>(Process&nbsp;process,
                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all label accesses of the process</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getLabelAccessList</a></span>(Runnable&nbsp;runnable,
                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all label accesses of the runnable</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getLabelAccessStatisticsMap</a></span>(Process&nbsp;process,
                           EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels accessed by the process -&gt; the corresponding label access statistics</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getLabelAccessStatisticsMap</a></span>(Runnable&nbsp;runnable,
                           EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels accessed by the runnable -&gt; the corresponding LabelAccessStatistics</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelReadCount-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getLabelReadCount</a></span>(Label&nbsp;label,
                 Process&nbsp;process,
                 EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                 <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>
<div class="block">Returns the reads from a process to a certain label.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccess&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getLabelToLabelAccessMap</a></span>(Process&nbsp;process,
                        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: accessed labels of the process -&gt; the corresponding label accesses</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccess&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getLabelToLabelAccessMap</a></span>(Runnable&nbsp;runnable,
                        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels accessed from runnable -&gt; the corresponding label accesses</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getLabelWriteCount-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">getLabelWriteCount</a></span>(Label&nbsp;label,
                  Process&nbsp;process,
                  EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                  <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</code>
<div class="block">Returns the writes from a process to a certain label.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReaderListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getReaderListOfLabel</a></span>(Label&nbsp;label,
                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of runnables reading the label</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static Set&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReadersSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getReadersSetOfLabel</a></span>(Label&nbsp;label,
                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of runnables reading the label</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getReadLabelAccessList</a></span>(Runnable&nbsp;runnable,
                      EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of read label accesses of the runnable</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getReadLabelAccessStatisticsMap</a></span>(Process&nbsp;process,
                               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels read the process -&gt; the corresponding label access statistics</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getReadLabelAccessStatisticsMap</a></span>(Runnable&nbsp;runnable,
                               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels read by the runnable -&gt; the corresponding LabelAccessStatistics</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getReadLabelSet</a></span>(Process&nbsp;process,
               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of labels read by the process</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getReadLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getReadLabelSet</a></span>(Runnable&nbsp;runnable,
               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of labels read by the runnable</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getRunnableList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getRunnableList</a></span>(Process&nbsp;process,
               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of runnables called by the process</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static Set&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getRunnableSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getRunnableSet</a></span>(Process&nbsp;process,
              EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of runnables called by the process - no duplicates</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static Set&lt;ServerCall&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getServerCallSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getServerCallSet</a></span>(Process&nbsp;process,
                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of server calls for a process</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static Set&lt;ServerCall&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getServerCallSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getServerCallSet</a></span>(Runnable&nbsp;runnable,
                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of server calls for a runnable</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static List&lt;Ticks&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getTicks-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getTicks</a></span>(Process&nbsp;process,
        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all ticks for a given process</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static List&lt;Ticks&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getTicks-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getTicks</a></span>(Runnable&nbsp;runnable,
        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of all ticks for a given runnable</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static List&lt;LabelAccess&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getWriteLabelAccessList</a></span>(Runnable&nbsp;runnable,
                       EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of write label accesses of the runnable</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getWriteLabelAccessStatisticsMap</a></span>(Process&nbsp;process,
                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels written by the process -&gt; the corresponding label access statistics</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getWriteLabelAccessStatisticsMap</a></span>(Runnable&nbsp;runnable,
                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a map: labels written by the runnable -&gt; the corresponding LabelAccessStatistics</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">getWriteLabelSet</a></span>(Process&nbsp;process,
                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of labels written by the process</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static Set&lt;Label&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">getWriteLabelSet</a></span>(Runnable&nbsp;runnable,
                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of labels written by the runnable</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static List&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriterListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getWriterListOfLabel</a></span>(Label&nbsp;label,
                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a list of runnables writing the label</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static Set&lt;Runnable&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="#getWriterSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">getWriterSetOfLabel</a></span>(Label&nbsp;label,
                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</code>
<div class="block">Returns a set of runnables writing the label</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="SoftwareUtil--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SoftwareUtil</h4>
<pre>public&nbsp;SoftwareUtil()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectActivityGraphItems</h4>
<pre>public static&nbsp;EList&lt;ActivityGraphItem&gt;&nbsp;collectActivityGraphItems(IActivityGraphItemContainer&nbsp;container)</pre>
<div class="block">Traverse the contained call graph items and collect all items.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>container</code> - call graph, group, ...</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of ActivityGraphItems</dd>
</dl>
</li>
</ul>
<a name="collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectActivityGraphItems</h4>
<pre>public static&nbsp;EList&lt;ActivityGraphItem&gt;&nbsp;collectActivityGraphItems(IActivityGraphItemContainer&nbsp;container,
                                                                 EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Traverse the contained call graph items and collect all items.
 Collection can be restricted to specific modes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>container</code> - call graph, group, ...</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of ActivityGraphItems</dd>
</dl>
</li>
</ul>
<a name="collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-java.util.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectActivityGraphItems</h4>
<pre>public static&nbsp;EList&lt;ActivityGraphItem&gt;&nbsp;collectActivityGraphItems(IActivityGraphItemContainer&nbsp;container,
                                                                 EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                                                 Function&lt;ActivityGraphItem,Boolean&gt;&nbsp;filter)</pre>
<div class="block">Traverse the contained call graph items and collect all items.
 Collection can be restricted to specific modes and filtered by a lambda expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>container</code> - call graph, group, ...</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dd><code>filter</code> - lambda expression (e.g. "a -&gt; a instanceof LabelAccess")</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of ActivityGraphItems</dd>
</dl>
</li>
</ul>
<a name="collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectActivityGraphItems</h4>
<pre>public static&nbsp;&lt;T extends ActivityGraphItem&gt;&nbsp;EList&lt;T&gt;&nbsp;collectActivityGraphItems(IActivityGraphItemContainer&nbsp;container,
                                                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                                                               Class&lt;T&gt;&nbsp;targetClass)</pre>
<div class="block">Traverse the runnable items graph of a runnable and collect all items.
 Collection can be restricted to specific modes and filtered by class.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>container</code> - call graph, group, ...</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dd><code>targetClass</code> - subclass of ActivityGraphItem that restricts the result</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of T extends ActivityGraphItems</dd>
</dl>
</li>
</ul>
<a name="collectActivityGraphItems-org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer-org.eclipse.emf.common.util.EMap-java.lang.Class-java.util.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectActivityGraphItems</h4>
<pre>public static&nbsp;&lt;T extends ActivityGraphItem&gt;&nbsp;EList&lt;T&gt;&nbsp;collectActivityGraphItems(IActivityGraphItemContainer&nbsp;container,
                                                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                                                               Class&lt;T&gt;&nbsp;targetClass,
                                                                               Function&lt;T,Boolean&gt;&nbsp;filter)</pre>
<div class="block">Traverse the runnable items graph of a runnable and collect all items.
 Collection can be restricted to specific modes and filtered by class and lambda expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>container</code> - call graph, group, ...</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dd><code>targetClass</code> - subclass of ActivityGraphItem that restricts the result</dd>
<dd><code>filter</code> - lambda expression (e.g. "a -&gt; a instanceof LabelAccess")</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of T extends ActivityGraphItems</dd>
</dl>
</li>
</ul>
<a name="getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessedLabelSet</h4>
<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getAccessedLabelSet(Runnable&nbsp;runnable,
                                             EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of labels accessed from the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getReadLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadLabelSet</h4>
<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getReadLabelSet(Runnable&nbsp;runnable,
                                         EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of labels read by the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLabelSet</h4>
<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getWriteLabelSet(Runnable&nbsp;runnable,
                                          EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of labels written by the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelAccessList</h4>
<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getLabelAccessList(Runnable&nbsp;runnable,
                                                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all label accesses of the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of LabelAccesses</dd>
</dl>
</li>
</ul>
<a name="getReadLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadLabelAccessList</h4>
<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getReadLabelAccessList(Runnable&nbsp;runnable,
                                                       EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of read label accesses of the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of LabelAccesses</dd>
</dl>
</li>
</ul>
<a name="getWriteLabelAccessList-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLabelAccessList</h4>
<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getWriteLabelAccessList(Runnable&nbsp;runnable,
                                                        EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of write label accesses of the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of LabelAccesses</dd>
</dl>
</li>
</ul>
<a name="getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelToLabelAccessMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccess&gt;&gt;&nbsp;getLabelToLabelAccessMap(Runnable&nbsp;runnable,
                                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels accessed from runnable -&gt; the corresponding label accesses</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccesses</dd>
</dl>
</li>
</ul>
<a name="getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelAccessStatisticsMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getLabelAccessStatisticsMap(Runnable&nbsp;runnable,
                                                                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels accessed by the runnable -&gt; the corresponding LabelAccessStatistics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map:
                Label -&gt; List of LabelAccessStatistics</dd>
</dl>
</li>
</ul>
<a name="getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadLabelAccessStatisticsMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getReadLabelAccessStatisticsMap(Runnable&nbsp;runnable,
                                                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels read by the runnable -&gt; the corresponding LabelAccessStatistics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccessStatistics</dd>
</dl>
</li>
</ul>
<a name="getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLabelAccessStatisticsMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getWriteLabelAccessStatisticsMap(Runnable&nbsp;runnable,
                                                                                     EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels written by the runnable -&gt; the corresponding LabelAccessStatistics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccessStatistics</dd>
</dl>
</li>
</ul>
<a name="getAccessedLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessedLabelSet</h4>
<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getAccessedLabelSet(Process&nbsp;process,
                                             EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of labels accessed by the process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getReadLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadLabelSet</h4>
<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getReadLabelSet(Process&nbsp;process,
                                         EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of labels read by the process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getWriteLabelSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLabelSet</h4>
<pre>public static&nbsp;Set&lt;Label&gt;&nbsp;getWriteLabelSet(Process&nbsp;process,
                                          EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of labels written by the process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getLabelAccessList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelAccessList</h4>
<pre>public static&nbsp;List&lt;LabelAccess&gt;&nbsp;getLabelAccessList(Process&nbsp;process,
                                                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all label accesses of the process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of LabelAccesses</dd>
</dl>
</li>
</ul>
<a name="getLabelToLabelAccessMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelToLabelAccessMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccess&gt;&gt;&nbsp;getLabelToLabelAccessMap(Process&nbsp;process,
                                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: accessed labels of the process -&gt; the corresponding label accesses</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccess</dd>
</dl>
</li>
</ul>
<a name="getLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelAccessStatisticsMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getLabelAccessStatisticsMap(Process&nbsp;process,
                                                                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels accessed by the process -&gt; the corresponding label access statistics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccessStatistic</dd>
</dl>
</li>
</ul>
<a name="getReadLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadLabelAccessStatisticsMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getReadLabelAccessStatisticsMap(Process&nbsp;process,
                                                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels read the process -&gt; the corresponding label access statistics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccessStatistic</dd>
</dl>
</li>
</ul>
<a name="getWriteLabelAccessStatisticsMap-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriteLabelAccessStatisticsMap</h4>
<pre>public static&nbsp;Map&lt;Label,List&lt;LabelAccessStatistic&gt;&gt;&nbsp;getWriteLabelAccessStatisticsMap(Process&nbsp;process,
                                                                                     EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a map: labels written by the process -&gt; the corresponding label access statistics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map: Label -&gt; List of LabelAccessStatistic</dd>
</dl>
</li>
</ul>
<a name="getLabelReadCount-org.eclipse.app4mc.amalthea.model.Label-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>getLabelReadCount</h4>
<pre>public static&nbsp;float&nbsp;getLabelReadCount(Label&nbsp;label,
                                      Process&nbsp;process,
                                      EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                      <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
<div class="block">Returns the reads from a process to a certain label. Evaluates the LabelAccessStatistic. 
 Definition of TimeType is possible. Null value returns the average case.</div>
</li>
</ul>
<a name="getLabelWriteCount-org.eclipse.app4mc.amalthea.model.Label-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>getLabelWriteCount</h4>
<pre>public static&nbsp;float&nbsp;getLabelWriteCount(Label&nbsp;label,
                                       Process&nbsp;process,
                                       EMap&lt;ModeLabel,String&gt;&nbsp;modes,
                                       <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;timeType)</pre>
<div class="block">Returns the writes from a process to a certain label. Evaluates the LabelAccessStatistic. 
 Definition of TimeType is possible. Null value returns the average case.</div>
</li>
</ul>
<a name="getRunnableList-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRunnableList</h4>
<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getRunnableList(Process&nbsp;process,
                                             EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of runnables called by the process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Runnables</dd>
</dl>
</li>
</ul>
<a name="getRunnableSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRunnableSet</h4>
<pre>public static&nbsp;Set&lt;Runnable&gt;&nbsp;getRunnableSet(Process&nbsp;process,
                                           EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of runnables called by the process - no duplicates</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of runnables called by the process</dd>
</dl>
</li>
</ul>
<a name="getLabelAccessCountFromStatistics-org.eclipse.app4mc.amalthea.model.LabelAccess-org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLabelAccessCountFromStatistics</h4>
<pre>public static&nbsp;float&nbsp;getLabelAccessCountFromStatistics(LabelAccess&nbsp;labelAcc,
                                                      <a href="../../../../../../org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.TimeType.html" title="enum in org.eclipse.app4mc.amalthea.model.util">RuntimeUtil.TimeType</a>&nbsp;accType)</pre>
<div class="block">Returns the number of label accesses from a statistic.
 The accType defines if the minimum, maximum or average accesses are returned.</div>
</li>
</ul>
<a name="getReaderListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReaderListOfLabel</h4>
<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getReaderListOfLabel(Label&nbsp;label,
                                                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of runnables reading the label</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>label</code> - label</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Runnables</dd>
</dl>
</li>
</ul>
<a name="getReadersSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadersSetOfLabel</h4>
<pre>public static&nbsp;Set&lt;Runnable&gt;&nbsp;getReadersSetOfLabel(Label&nbsp;label,
                                                 EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of runnables reading the label</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>label</code> - label</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Labels</dd>
</dl>
</li>
</ul>
<a name="getWriterListOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriterListOfLabel</h4>
<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getWriterListOfLabel(Label&nbsp;label,
                                                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of runnables writing the label</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>label</code> - label</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Runnables</dd>
</dl>
</li>
</ul>
<a name="getWriterSetOfLabel-org.eclipse.app4mc.amalthea.model.Label-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriterSetOfLabel</h4>
<pre>public static&nbsp;Set&lt;Runnable&gt;&nbsp;getWriterSetOfLabel(Label&nbsp;label,
                                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of runnables writing the label</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>label</code> - label</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of Runnables</dd>
</dl>
</li>
</ul>
<a name="collectSetEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectSetEvents</h4>
<pre>public static&nbsp;List&lt;SetEvent&gt;&nbsp;collectSetEvents(Process&nbsp;process,
                                              EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Collects a list of set events calls for a process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of SetEvents</dd>
</dl>
</li>
</ul>
<a name="collectClearEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectClearEvents</h4>
<pre>public static&nbsp;List&lt;ClearEvent&gt;&nbsp;collectClearEvents(Process&nbsp;process,
                                                  EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Collects a list of clear event calls for a process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of ClearEvents</dd>
</dl>
</li>
</ul>
<a name="collectWaitEvents-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectWaitEvents</h4>
<pre>public static&nbsp;List&lt;WaitEvent&gt;&nbsp;collectWaitEvents(Process&nbsp;process,
                                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Collects a list of wait event calls for a process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of WaitEvents</dd>
</dl>
</li>
</ul>
<a name="collectEventsOfProcess-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectEventsOfProcess</h4>
<pre>public static&nbsp;List&lt;ActivityGraphItem&gt;&nbsp;collectEventsOfProcess(Process&nbsp;process,
                                                             EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Collects a list of event calls (clear, set or wait) of a process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of CallSequenceItems</dd>
</dl>
</li>
</ul>
<a name="getInterTaskCommunication-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterTaskCommunication</h4>
<pre>public static&nbsp;List&lt;Label&gt;&nbsp;getInterTaskCommunication(Process&nbsp;sender,
                                                    Process&nbsp;receiver,
                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all exchanged labels that are written by the sender process and read by the receiver process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sender</code> - process (Task or ISR)</dd>
<dd><code>receiver</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Labels</dd>
</dl>
</li>
</ul>
<a name="getCallingProcesses-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCallingProcesses</h4>
<pre>public static&nbsp;List&lt;Process&gt;&nbsp;getCallingProcesses(Runnable&nbsp;runnable,
                                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of processes calling the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Processes</dd>
</dl>
</li>
</ul>
<a name="getCallingRunnables-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCallingRunnables</h4>
<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getCallingRunnables(Runnable&nbsp;runnable,
                                                 EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of runnables directly calling the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Runnables</dd>
</dl>
</li>
</ul>
<a name="getCalledRunnables-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCalledRunnables</h4>
<pre>public static&nbsp;List&lt;Runnable&gt;&nbsp;getCalledRunnables(Runnable&nbsp;runnable,
                                                EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of runnables directly called by the runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Runnables</dd>
</dl>
</li>
</ul>
<a name="getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionNeeds</h4>
<pre>public static&nbsp;List&lt;ExecutionNeed&gt;&nbsp;getExecutionNeeds(Runnable&nbsp;runnable,
                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all execution needs for a given runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of ExecutionNeeds</dd>
</dl>
</li>
</ul>
<a name="getExecutionNeeds-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionNeeds</h4>
<pre>public static&nbsp;List&lt;ExecutionNeed&gt;&nbsp;getExecutionNeeds(Process&nbsp;process,
                                                    EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all execution needs for a given process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of ExecutionNeeds</dd>
</dl>
</li>
</ul>
<a name="getTicks-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTicks</h4>
<pre>public static&nbsp;List&lt;Ticks&gt;&nbsp;getTicks(Runnable&nbsp;runnable,
                                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all ticks for a given runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Ticks</dd>
</dl>
</li>
</ul>
<a name="getTicks-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTicks</h4>
<pre>public static&nbsp;List&lt;Ticks&gt;&nbsp;getTicks(Process&nbsp;process,
                                   EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a list of all ticks for a given process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of Ticks</dd>
</dl>
</li>
</ul>
<a name="getServerCallSet-org.eclipse.app4mc.amalthea.model.Runnable-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerCallSet</h4>
<pre>public static&nbsp;Set&lt;ServerCall&gt;&nbsp;getServerCallSet(Runnable&nbsp;runnable,
                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of server calls for a runnable</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - runnable</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of ServerCall</dd>
</dl>
</li>
</ul>
<a name="getServerCallSet-org.eclipse.app4mc.amalthea.model.Process-org.eclipse.emf.common.util.EMap-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getServerCallSet</h4>
<pre>public static&nbsp;Set&lt;ServerCall&gt;&nbsp;getServerCallSet(Process&nbsp;process,
                                               EMap&lt;ModeLabel,String&gt;&nbsp;modes)</pre>
<div class="block">Returns a set of server calls for a process</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>process</code> - process (Task or ISR)</dd>
<dd><code>modes</code> - (optional) - null works</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of ServerCall</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</body>
</html>
