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());