diff --git a/li.strolch.model/src/main/java/li/strolch/model/activity/Activity.java b/li.strolch.model/src/main/java/li/strolch/model/activity/Activity.java index a41fa82c4..d2e143e84 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/activity/Activity.java +++ b/li.strolch.model/src/main/java/li/strolch/model/activity/Activity.java @@ -410,7 +410,7 @@ public class Activity extends AbstractStrolchRootElement } public List findActionsDeep(Predicate predicate) { - return getActionsAsFlatList().stream().filter(predicate).collect(toList()); + return streamActionsDeep().filter(predicate).collect(toList()); } public List getElementsByType(String type) { @@ -437,6 +437,14 @@ public class Activity extends AbstractStrolchRootElement return this.elements.values().stream(); } + public Stream streamActionsDeep() { + return streamElements().flatMap(e -> { + if (e.isAction()) + return Stream.of(e); + return e.asActivity().streamActionsDeep(); + }).map(IActivityElement::asAction); + } + /** * Returns all the actions as a flat list *