From 8e976673f081a68793e3be1bdb4d457cd051b04b Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 19 Mar 2020 08:24:53 +0100 Subject: [PATCH] [New] Added IActivityElement.findRelationParam() --- .../li/strolch/model/activity/Action.java | 11 +++++++ .../li/strolch/model/activity/Activity.java | 12 +++++++ .../model/activity/IActivityElement.java | 32 +++++++++++++++++-- 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/li.strolch.model/src/main/java/li/strolch/model/activity/Action.java b/li.strolch.model/src/main/java/li/strolch/model/activity/Action.java index 89a188199..14eb18909 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/activity/Action.java +++ b/li.strolch.model/src/main/java/li/strolch/model/activity/Action.java @@ -16,6 +16,7 @@ package li.strolch.model.activity; +import static li.strolch.model.StrolchModelConstants.BAG_RELATIONS; import static li.strolch.utils.helper.StringHelper.isNotEmpty; import java.text.MessageFormat; @@ -345,6 +346,16 @@ public class Action extends GroupedParameterizedElement implements IActivityElem return end; } + @Override + public > T findRelationParam(String paramKey) { + return findParameter(BAG_RELATIONS, paramKey); + } + + @Override + public > T findRelationParam(String paramKey, boolean assertExists) { + return findParameter(BAG_RELATIONS, paramKey, assertExists); + } + @Override public > T findParameter(String bagKey, String paramKey) { 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 2daee6a44..2c5fb5014 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 @@ -15,6 +15,8 @@ */ package li.strolch.model.activity; +import static li.strolch.model.StrolchModelConstants.BAG_RELATIONS; + import java.text.MessageFormat; import java.util.*; import java.util.Map.Entry; @@ -611,6 +613,16 @@ public class Activity extends AbstractStrolchRootElement return visitor.visitActivity(this); } + @Override + public > T findRelationParam(String paramKey) { + return findParameter(BAG_RELATIONS, paramKey); + } + + @Override + public > T findRelationParam(String paramKey, boolean assertExists) { + return findParameter(BAG_RELATIONS, paramKey, assertExists); + } + @SuppressWarnings("unchecked") @Override public > T findParameter(String bagKey, String paramKey) { diff --git a/li.strolch.model/src/main/java/li/strolch/model/activity/IActivityElement.java b/li.strolch.model/src/main/java/li/strolch/model/activity/IActivityElement.java index d8ef9f4a8..89eeb76e6 100644 --- a/li.strolch.model/src/main/java/li/strolch/model/activity/IActivityElement.java +++ b/li.strolch.model/src/main/java/li/strolch/model/activity/IActivityElement.java @@ -18,9 +18,7 @@ package li.strolch.model.activity; import java.util.function.Predicate; import li.strolch.exception.StrolchModelException; -import li.strolch.model.GroupedParameterizedElement; -import li.strolch.model.State; -import li.strolch.model.StrolchElement; +import li.strolch.model.*; import li.strolch.model.parameter.Parameter; import li.strolch.model.policy.PolicyDef; import li.strolch.model.visitor.StrolchElementVisitor; @@ -65,6 +63,34 @@ public interface IActivityElement extends StrolchElement { */ void setParent(Activity activity); + /** + *

+ * Checks if this element contains the {@link Parameter} on the {@link ParameterBag} with the id {@link + * StrolchModelConstants#BAG_RELATIONS}, or otherwise queries its parent, until the root element is reached. + *

+ * + *

+ * If the parameter does not exist, null is returned + *

+ * + * @see GroupedParameterizedElement#getRelationParam(String) + */ + > T findRelationParam(String paramKey); + + /** + *

+ * Checks if this element contains the {@link Parameter} on the {@link ParameterBag} with the id {@link + * StrolchModelConstants#BAG_RELATIONS}, or otherwise queries its parent, until the root element is reached. + *

+ * + *

+ * If the parameter does not exist and {@code assertExists} is true, then a {@link StrolchModelException} is thrown + *

+ * + * @see GroupedParameterizedElement#getRelationParam(String, boolean) + */ + > T findRelationParam(String paramKey, boolean assertExists); + /** *

* Checks if this element contains the {@link Parameter}, or otherwise queries its parent, until the root element is