You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/06/28 15:43:25 UTC
[isis] 01/01: ISIS-2773: adds FixtureScript#optionalParam()
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2773
in repository https://gitbox.apache.org/repos/asf/isis.git
commit af68b3e6d013fac51bde18102ed826ec0f12195d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jun 28 16:41:46 2021 +0100
ISIS-2773: adds FixtureScript#optionalParam()
---
.../fixtures/applib/fixturescripts/FixtureScript.java | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
index 10ebb97..de65f21 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
@@ -26,6 +26,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.stream.Stream;
import javax.inject.Inject;
@@ -695,13 +696,14 @@ public abstract class FixtureScript {
return defaultValue;
}
- protected <T> T checkParam(final String parameterName, final ExecutionContext ec, final Class<T> cls) {
-
+ protected <T> Optional<T> optionalParam(final String parameterName, final ExecutionContext ec, final Class<T> cls) {
final T value = readParam(parameterName, ec, cls);
- if(value != null) { return (T) value; }
+ return Optional.ofNullable(value);
+ }
- // else throw exception
- throw new IllegalArgumentException(String.format("No value for '%s'", parameterName));
+ protected <T> T checkParam(final String parameterName, final ExecutionContext ec, final Class<T> cls) {
+ return optionalParam(parameterName, ec, cls)
+ .orElseThrow(() -> new IllegalArgumentException(String.format("No value for '%s'", parameterName)));
}
private <T> T readParam(final String parameterName, final ExecutionContext ec, final Class<T> cls) {