Class SoftwareUtil
- Object
-
- SoftwareUtil
-
public class SoftwareUtil extends Object
-
-
Method Summary
All Methods Modifier and Type Method Description static EList<ActivityGraphItem>
collectActivityGraphItems(IActivityGraphItemContainer container)
Traverse the contained call graph items and collect all items.static EList<ActivityGraphItem>
collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes)
Traverse the contained call graph items and collect all items.static <T extends ActivityGraphItem>
EList<T>collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes, Class<T> targetClass)
Traverse the runnable items graph of a runnable and collect all items.static <T extends ActivityGraphItem>
EList<T>collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes, Class<T> targetClass, Function<T,Boolean> filter)
Traverse the runnable items graph of a runnable and collect all items.static EList<ActivityGraphItem>
collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes, Function<ActivityGraphItem,Boolean> filter)
Traverse the contained call graph items and collect all items.static List<ClearEvent>
collectClearEvents(Process process, EMap<ModeLabel,String> modes)
Collects a list of clear event calls for a processstatic List<ActivityGraphItem>
collectEventsOfProcess(Process process, EMap<ModeLabel,String> modes)
Collects a list of event calls (clear, set or wait) of a processstatic List<SetEvent>
collectSetEvents(Process process, EMap<ModeLabel,String> modes)
Collects a list of set events calls for a processstatic List<WaitEvent>
collectWaitEvents(Process process, EMap<ModeLabel,String> modes)
Collects a list of wait event calls for a processstatic Set<Label>
getAccessedLabelSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of labels accessed by the processstatic Set<Label>
getAccessedLabelSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of labels accessed from the runnablestatic List<Runnable>
getCalledRunnables(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of runnables directly called by the runnablestatic List<Process>
getCallingProcesses(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of processes calling the runnablestatic List<Runnable>
getCallingRunnables(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of runnables directly calling the runnablestatic List<ExecutionNeed>
getExecutionNeeds(Process process, EMap<ModeLabel,String> modes)
Returns a list of all execution needs for a given processstatic List<ExecutionNeed>
getExecutionNeeds(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of all execution needs for a given runnablestatic List<Label>
getInterTaskCommunication(Process sender, Process receiver, EMap<ModeLabel,String> modes)
Returns a list of all exchanged labels that are written by the sender process and read by the receiver processstatic float
getLabelAccessCountFromStatistics(LabelAccess labelAcc, RuntimeUtil.TimeType accType)
Returns the number of label accesses from a statistic.static List<LabelAccess>
getLabelAccessList(Process process, EMap<ModeLabel,String> modes)
Returns a list of all label accesses of the processstatic List<LabelAccess>
getLabelAccessList(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of all label accesses of the runnablestatic Map<Label,List<LabelAccessStatistic>>
getLabelAccessStatisticsMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: labels accessed by the process -> the corresponding label access statisticsstatic Map<Label,List<LabelAccessStatistic>>
getLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels accessed by the runnable -> the corresponding LabelAccessStatisticsstatic float
getLabelReadCount(Label label, Process process, EMap<ModeLabel,String> modes, RuntimeUtil.TimeType timeType)
Returns the reads from a process to a certain label.static Map<Label,List<LabelAccess>>
getLabelToLabelAccessMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: accessed labels of the process -> the corresponding label accessesstatic Map<Label,List<LabelAccess>>
getLabelToLabelAccessMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels accessed from runnable -> the corresponding label accessesstatic float
getLabelWriteCount(Label label, Process process, EMap<ModeLabel,String> modes, RuntimeUtil.TimeType timeType)
Returns the writes from a process to a certain label.static List<Runnable>
getReaderListOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a list of runnables reading the labelstatic Set<Runnable>
getReadersSetOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a set of runnables reading the labelstatic List<LabelAccess>
getReadLabelAccessList(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of read label accesses of the runnablestatic Map<Label,List<LabelAccessStatistic>>
getReadLabelAccessStatisticsMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: labels read the process -> the corresponding label access statisticsstatic Map<Label,List<LabelAccessStatistic>>
getReadLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels read by the runnable -> the corresponding LabelAccessStatisticsstatic Set<Label>
getReadLabelSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of labels read by the processstatic Set<Label>
getReadLabelSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of labels read by the runnablestatic List<Runnable>
getRunnableList(Process process, EMap<ModeLabel,String> modes)
Returns a list of runnables called by the processstatic Set<Runnable>
getRunnableSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of runnables called by the process - no duplicatesstatic Set<ServerCall>
getServerCallSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of server calls for a processstatic Set<ServerCall>
getServerCallSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of server calls for a runnablestatic List<Ticks>
getTicks(Process process, EMap<ModeLabel,String> modes)
Returns a list of all ticks for a given processstatic List<Ticks>
getTicks(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of all ticks for a given runnablestatic List<LabelAccess>
getWriteLabelAccessList(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of write label accesses of the runnablestatic Map<Label,List<LabelAccessStatistic>>
getWriteLabelAccessStatisticsMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: labels written by the process -> the corresponding label access statisticsstatic Map<Label,List<LabelAccessStatistic>>
getWriteLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels written by the runnable -> the corresponding LabelAccessStatisticsstatic Set<Label>
getWriteLabelSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of labels written by the processstatic Set<Label>
getWriteLabelSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of labels written by the runnablestatic List<Runnable>
getWriterListOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a list of runnables writing the labelstatic Set<Runnable>
getWriterSetOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a set of runnables writing the label
-
-
-
Method Detail
-
collectActivityGraphItems
public static EList<ActivityGraphItem> collectActivityGraphItems(IActivityGraphItemContainer container)
Traverse the contained call graph items and collect all items.- Parameters:
container
- call graph, group, ...- Returns:
- List of ActivityGraphItems
-
collectActivityGraphItems
public static EList<ActivityGraphItem> collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes)
Traverse the contained call graph items and collect all items. Collection can be restricted to specific modes.- Parameters:
container
- call graph, group, ...modes
- (optional) - null works- Returns:
- List of ActivityGraphItems
-
collectActivityGraphItems
public static EList<ActivityGraphItem> collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes, Function<ActivityGraphItem,Boolean> filter)
Traverse the contained call graph items and collect all items. Collection can be restricted to specific modes and filtered by a lambda expression.- Parameters:
container
- call graph, group, ...modes
- (optional) - null worksfilter
- lambda expression (e.g. "a -> a instanceof LabelAccess")- Returns:
- List of ActivityGraphItems
-
collectActivityGraphItems
public static <T extends ActivityGraphItem> EList<T> collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes, Class<T> targetClass)
Traverse the runnable items graph of a runnable and collect all items. Collection can be restricted to specific modes and filtered by class.- Parameters:
container
- call graph, group, ...modes
- (optional) - null workstargetClass
- subclass of ActivityGraphItem that restricts the result- Returns:
- List of T extends ActivityGraphItems
-
collectActivityGraphItems
public static <T extends ActivityGraphItem> EList<T> collectActivityGraphItems(IActivityGraphItemContainer container, EMap<ModeLabel,String> modes, Class<T> targetClass, Function<T,Boolean> filter)
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.- Parameters:
container
- call graph, group, ...modes
- (optional) - null workstargetClass
- subclass of ActivityGraphItem that restricts the resultfilter
- lambda expression (e.g. "a -> a instanceof LabelAccess")- Returns:
- List of T extends ActivityGraphItems
-
getAccessedLabelSet
public static Set<Label> getAccessedLabelSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of labels accessed from the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Set of Labels
-
getReadLabelSet
public static Set<Label> getReadLabelSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of labels read by the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Set of Labels
-
getWriteLabelSet
public static Set<Label> getWriteLabelSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of labels written by the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Set of Labels
-
getLabelAccessList
public static List<LabelAccess> getLabelAccessList(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of all label accesses of the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of LabelAccesses
-
getReadLabelAccessList
public static List<LabelAccess> getReadLabelAccessList(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of read label accesses of the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of LabelAccesses
-
getWriteLabelAccessList
public static List<LabelAccess> getWriteLabelAccessList(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of write label accesses of the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of LabelAccesses
-
getLabelToLabelAccessMap
public static Map<Label,List<LabelAccess>> getLabelToLabelAccessMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels accessed from runnable -> the corresponding label accesses- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccesses
-
getLabelAccessStatisticsMap
public static Map<Label,List<LabelAccessStatistic>> getLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels accessed by the runnable -> the corresponding LabelAccessStatistics- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccessStatistics
-
getReadLabelAccessStatisticsMap
public static Map<Label,List<LabelAccessStatistic>> getReadLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels read by the runnable -> the corresponding LabelAccessStatistics- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccessStatistics
-
getWriteLabelAccessStatisticsMap
public static Map<Label,List<LabelAccessStatistic>> getWriteLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a map: labels written by the runnable -> the corresponding LabelAccessStatistics- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccessStatistics
-
getAccessedLabelSet
public static Set<Label> getAccessedLabelSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of labels accessed by the process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Set of Labels
-
getReadLabelSet
public static Set<Label> getReadLabelSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of labels read by the process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Set of Labels
-
getWriteLabelSet
public static Set<Label> getWriteLabelSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of labels written by the process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Set of Labels
-
getLabelAccessList
public static List<LabelAccess> getLabelAccessList(Process process, EMap<ModeLabel,String> modes)
Returns a list of all label accesses of the process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of LabelAccesses
-
getLabelToLabelAccessMap
public static Map<Label,List<LabelAccess>> getLabelToLabelAccessMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: accessed labels of the process -> the corresponding label accesses- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccess
-
getLabelAccessStatisticsMap
public static Map<Label,List<LabelAccessStatistic>> getLabelAccessStatisticsMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: labels accessed by the process -> the corresponding label access statistics- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccessStatistic
-
getReadLabelAccessStatisticsMap
public static Map<Label,List<LabelAccessStatistic>> getReadLabelAccessStatisticsMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: labels read the process -> the corresponding label access statistics- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccessStatistic
-
getWriteLabelAccessStatisticsMap
public static Map<Label,List<LabelAccessStatistic>> getWriteLabelAccessStatisticsMap(Process process, EMap<ModeLabel,String> modes)
Returns a map: labels written by the process -> the corresponding label access statistics- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Map: Label -> List of LabelAccessStatistic
-
getLabelReadCount
public static float getLabelReadCount(Label label, Process process, EMap<ModeLabel,String> modes, RuntimeUtil.TimeType timeType)
Returns the reads from a process to a certain label. Evaluates the LabelAccessStatistic. Definition of TimeType is possible. Null value returns the average case.
-
getLabelWriteCount
public static float getLabelWriteCount(Label label, Process process, EMap<ModeLabel,String> modes, RuntimeUtil.TimeType timeType)
Returns the writes from a process to a certain label. Evaluates the LabelAccessStatistic. Definition of TimeType is possible. Null value returns the average case.
-
getRunnableList
public static List<Runnable> getRunnableList(Process process, EMap<ModeLabel,String> modes)
Returns a list of runnables called by the process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of Runnables
-
getRunnableSet
public static Set<Runnable> getRunnableSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of runnables called by the process - no duplicates- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Set of runnables called by the process
-
getLabelAccessCountFromStatistics
public static float getLabelAccessCountFromStatistics(LabelAccess labelAcc, RuntimeUtil.TimeType accType)
Returns the number of label accesses from a statistic. The accType defines if the minimum, maximum or average accesses are returned.
-
getReaderListOfLabel
public static List<Runnable> getReaderListOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a list of runnables reading the label- Parameters:
label
- labelmodes
- (optional) - null works- Returns:
- List of Runnables
-
getReadersSetOfLabel
public static Set<Runnable> getReadersSetOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a set of runnables reading the label- Parameters:
label
- labelmodes
- (optional) - null works- Returns:
- Set of Labels
-
getWriterListOfLabel
public static List<Runnable> getWriterListOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a list of runnables writing the label- Parameters:
label
- labelmodes
- (optional) - null works- Returns:
- List of Runnables
-
getWriterSetOfLabel
public static Set<Runnable> getWriterSetOfLabel(Label label, EMap<ModeLabel,String> modes)
Returns a set of runnables writing the label- Parameters:
label
- labelmodes
- (optional) - null works- Returns:
- Set of Runnables
-
collectSetEvents
public static List<SetEvent> collectSetEvents(Process process, EMap<ModeLabel,String> modes)
Collects a list of set events calls for a process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of SetEvents
-
collectClearEvents
public static List<ClearEvent> collectClearEvents(Process process, EMap<ModeLabel,String> modes)
Collects a list of clear event calls for a process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of ClearEvents
-
collectWaitEvents
public static List<WaitEvent> collectWaitEvents(Process process, EMap<ModeLabel,String> modes)
Collects a list of wait event calls for a process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of WaitEvents
-
collectEventsOfProcess
public static List<ActivityGraphItem> collectEventsOfProcess(Process process, EMap<ModeLabel,String> modes)
Collects a list of event calls (clear, set or wait) of a process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of CallSequenceItems
-
getInterTaskCommunication
public static List<Label> getInterTaskCommunication(Process sender, Process receiver, EMap<ModeLabel,String> modes)
Returns a list of all exchanged labels that are written by the sender process and read by the receiver process- Parameters:
sender
- process (Task or ISR)receiver
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of Labels
-
getCallingProcesses
public static List<Process> getCallingProcesses(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of processes calling the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of Processes
-
getCallingRunnables
public static List<Runnable> getCallingRunnables(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of runnables directly calling the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of Runnables
-
getCalledRunnables
public static List<Runnable> getCalledRunnables(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of runnables directly called by the runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of Runnables
-
getExecutionNeeds
public static List<ExecutionNeed> getExecutionNeeds(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of all execution needs for a given runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of ExecutionNeeds
-
getExecutionNeeds
public static List<ExecutionNeed> getExecutionNeeds(Process process, EMap<ModeLabel,String> modes)
Returns a list of all execution needs for a given process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of ExecutionNeeds
-
getTicks
public static List<Ticks> getTicks(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a list of all ticks for a given runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- List of Ticks
-
getTicks
public static List<Ticks> getTicks(Process process, EMap<ModeLabel,String> modes)
Returns a list of all ticks for a given process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- List of Ticks
-
getServerCallSet
public static Set<ServerCall> getServerCallSet(Runnable runnable, EMap<ModeLabel,String> modes)
Returns a set of server calls for a runnable- Parameters:
runnable
- runnablemodes
- (optional) - null works- Returns:
- Set of ServerCall
-
getServerCallSet
public static Set<ServerCall> getServerCallSet(Process process, EMap<ModeLabel,String> modes)
Returns a set of server calls for a process- Parameters:
process
- process (Task or ISR)modes
- (optional) - null works- Returns:
- Set of ServerCall
-
-