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 2022/01/10 08:29:31 UTC

[isis] branch master updated: ISIS-2856: change tracking: remove deprecations

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


The following commit(s) were added to refs/heads/master by this push:
     new 6bead0e  ISIS-2856: change tracking: remove deprecations
6bead0e is described below

commit 6bead0e45c85dd5bb102692bf4e5ce20fb0c644d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 10 09:29:01 2022 +0100

    ISIS-2856: change tracking: remove deprecations
---
 .../services/objectlifecycle/PropertyChangeRecord.java | 12 ++++++------
 .../specimpl/ObjectActionParameterAbstract.java        | 18 ------------------
 .../changetracking/EntityChangeTrackerJdo.java         | 13 ++++++++++---
 3 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
index 69ee68e..1eee04c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/objectlifecycle/PropertyChangeRecord.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.IdentifierUtil;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ManagedObjects;
-import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 
 import lombok.EqualsAndHashCode;
@@ -88,11 +87,12 @@ public final class PropertyChangeRecord {
         setPreValue(getPropertyValue());
     }
 
-    @Deprecated // unreliable logic, instead the caller should know if this originates from a delete event
-    public void updatePostValue() {
-        preAndPostValue = EntityUtil.isDetachedOrRemoved(entity) //TODO[ISIS-2573] when detached, logic is wrong
-                ? preAndPostValue.withPost(PropertyValuePlaceholder.DELETED)
-                : preAndPostValue.withPost(getPropertyValue());
+    public void updatePostValueAsNonDeleted() {
+        preAndPostValue.withPost(getPropertyValue());
+    }
+
+    public void updatePostValueAsDeleted() {
+        preAndPostValue.withPost(PropertyValuePlaceholder.DELETED);
     }
 
     // -- UTILITY
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index e53971e..c88c25c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
-import java.util.ArrayList;
 import java.util.Optional;
 import java.util.function.Supplier;
 
@@ -378,21 +377,4 @@ implements
         return validResult.createConsent();
     }
 
-    /**
-     * TODO: this is not ideal, because we can only populate the array for
-     * single argument, rather than the entire argument set. Instead, we ought
-     * to do this in two passes, one to build up the argument set as a single
-     * unit, and then validate each in turn.
-     */
-    @Deprecated
-    private Can<ManagedObject> arguments(final ManagedObject proposedValue) {
-        final int paramCount = getAction().getParameterCount();
-        final int paramIndex = getParameterIndex();
-        val arguments = new ArrayList<ManagedObject>(paramCount);
-        for(int i=0; i<paramCount; ++i) {
-            arguments.add(i==paramIndex ? proposedValue : ManagedObject.empty(getAction().getParameterTypes().getElseFail(paramIndex)));
-        }
-        return Can.ofCollection(arguments);
-    }
-
 }
diff --git a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/EntityChangeTrackerJdo.java b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/EntityChangeTrackerJdo.java
index c25620a..1e32f4d 100644
--- a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/EntityChangeTrackerJdo.java
+++ b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/changetracking/EntityChangeTrackerJdo.java
@@ -67,10 +67,11 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleE
 import org.apache.isis.core.metamodel.facets.object.publish.entitychange.EntityChangePublishingFacet;
 import org.apache.isis.core.metamodel.facets.properties.property.entitychangepublishing.EntityPropertyChangePublishingPolicyFacet;
 import org.apache.isis.core.metamodel.services.objectlifecycle.HasEnlistedEntityPropertyChanges;
-import org.apache.isis.core.metamodel.services.objectlifecycle.PropertyValuePlaceholder;
 import org.apache.isis.core.metamodel.services.objectlifecycle.PropertyChangeRecord;
+import org.apache.isis.core.metamodel.services.objectlifecycle.PropertyValuePlaceholder;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ManagedObjects;
+import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
 import org.apache.isis.core.transaction.changetracking.EntityChangeTracker;
 import org.apache.isis.core.transaction.changetracking.EntityChangesPublisher;
@@ -105,7 +106,7 @@ implements
     /**
      * Contains initial change records having set the pre-values of every property of every object that was enlisted.
      */
-    private final Map<String,PropertyChangeRecord> propertyChangeRecordsById = _Maps.newLinkedHashMap();
+    private final Map<String, PropertyChangeRecord> propertyChangeRecordsById = _Maps.newLinkedHashMap();
 
     /**
      * Contains pre- and post- values of every property of every object that actually changed. A lazy snapshot,
@@ -314,7 +315,13 @@ implements
 
         val records = propertyChangeRecordsById.values().stream()
                 // set post values, which have been left empty up to now
-                .peek(PropertyChangeRecord::updatePostValue)
+                .peek(rec->{
+                    if(EntityUtil.isDetachedOrRemoved(rec.getEntity())) {
+                        rec.updatePostValueAsDeleted();
+                    } else {
+                        rec.updatePostValueAsNonDeleted();
+                    }
+                })
                 .filter(managedProperty->managedProperty.getPreAndPostValue().shouldPublish())
                 .collect(_Sets.toUnmodifiable());