You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/04/30 17:25:29 UTC
[isis] 01/09: ISIS-2340: share logic of
ObjectAdapterAccessHelper/UpdateHelper (13)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 42a1d650cbb44ce18c7979a0c10dbf18813e6dbb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Apr 26 11:46:20 2020 +0200
ISIS-2340: share logic of ObjectAdapterAccessHelper/UpdateHelper (13)
---
.../viewer/resources/DomainResourceHelper.java | 2 +-
.../viewer/resources/ObjectActionArgHelper.java | 23 ++++++++++------------
2 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
index 8dfe4ef..befd24a 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainResourceHelper.java
@@ -203,7 +203,7 @@ class DomainResourceHelper {
val action = managedAction.getAction();
val objectAdapter = this.objectAdapter;
- val argHelper = new ObjectActionArgHelper(resourceContext, objectAdapter, action);
+ val argHelper = new ObjectActionArgHelper(resourceContext, managedAction);
val argAdapters = argHelper.parseAndValidateArguments(arguments);
if(resourceContext.isValidateOnly()) {
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
index f0de770..9929406 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
@@ -28,33 +28,30 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
+import org.apache.isis.core.metamodel.spec.interaction.ManagedAction;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
+import lombok.RequiredArgsConstructor;
import lombok.val;
/**
* Utility class that encapsulates the logic for parsing arguments to be invoked by an
* {@link ObjectAction}.
*/
+@RequiredArgsConstructor
public class ObjectActionArgHelper {
private final IResourceContext resourceContext;
- private final ManagedObject objectAdapter;
- private final ObjectAction action;
-
- public ObjectActionArgHelper(
- final IResourceContext resourceContext,
- final ManagedObject objectAdapter,
- final ObjectAction action) {
- this.resourceContext = resourceContext;
- this.objectAdapter = objectAdapter;
- this.action = action;
- }
+ private final ManagedAction managedAction;
public List<ManagedObject> parseAndValidateArguments(final JsonRepresentation arguments) {
+
+ val action = managedAction.getAction();
+ val owner = managedAction.getOwner();
+
final List<JsonRepresentation> argList = argListFor(action, arguments);
final List<ManagedObject> argAdapters = _Lists.newArrayList();
@@ -70,7 +67,7 @@ public class ObjectActionArgHelper {
// validate individual arg
final ObjectActionParameter parameter = parameters.getElseFail(i);
final Object argPojo = argAdapter!=null?argAdapter.getPojo():null;
- final String reasonNotValid = parameter.isValid(objectAdapter, argPojo, InteractionInitiatedBy.USER);
+ final String reasonNotValid = parameter.isValid(owner, argPojo, InteractionInitiatedBy.USER);
if (reasonNotValid != null) {
argRepr.mapPut("invalidReason", reasonNotValid);
valid = false;
@@ -83,7 +80,7 @@ public class ObjectActionArgHelper {
// validate entire argument set
final Consent consent = action.isArgumentSetValid(
- objectAdapter, argAdapters, InteractionInitiatedBy.USER);
+ owner, argAdapters, InteractionInitiatedBy.USER);
if (consent.isVetoed()) {
arguments.mapPut("x-ro-invalidReason", consent.getReason());
valid = false;