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 90c69a477..57b2e9a6e 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 @@ -434,11 +434,40 @@ public class Activity extends AbstractStrolchRootElement return this.elements.values().stream(); } - public Stream streamActions(Predicate predicate) { + public Stream streamElementsByType(String type) { + return streamElements().filter(e -> e.getType().equals(type)); + } + + public Stream streamElements(Predicate predicate) { + return streamElements().filter(predicate); + } + + public Stream streamActivities() { + return streamElements() // + .filter(IActivityElement::isActivity) // + .map(IActivityElement::asActivity); + } + + public Stream streamActivities(Predicate predicate) { + return streamActivities().filter(predicate); + } + + public Stream streamActivitiesByType(String type) { + return streamActivities(a -> a.getType().equals(type)); + } + + public Stream streamActions() { return streamElements() // .filter(IActivityElement::isAction) // - .map(e -> (Action) e) // - .filter(predicate); + .map(IActivityElement::asAction); + } + + public Stream streamActions(Predicate predicate) { + return streamActions().filter(predicate); + } + + public Stream streamActionsByType(String type) { + return streamActions(a -> a.getType().equals(type)); } public Stream streamActionsDeep() { @@ -460,6 +489,10 @@ public class Activity extends AbstractStrolchRootElement return t; } + public List findElementsByType(String type) { + return findElements(e -> e.getType().equals(type)); + } + public List findElements(Predicate predicate) { return streamElements().filter(predicate).collect(toList()); }