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 2021/07/30 14:25:40 UTC

[isis] branch master updated: ISIS-2830: just comments

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 cd6584d  ISIS-2830: just comments
cd6584d is described below

commit cd6584db96a27cd93dfe356fab347cc8827b2392
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jul 30 16:25:30 2021 +0200

    ISIS-2830: just comments
---
 .../isis/core/metamodel/interactions/managed/ManagedMember.java  | 2 ++
 .../core/metamodel/interactions/managed/ManagedProperty.java     | 9 +++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
index ba8bdcf..e4e8221 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedMember.java
@@ -92,6 +92,8 @@ public abstract class ManagedMember implements ManagedFeature {
 
     @NonNull private ManagedObject owner;
     public ManagedObject getOwner() {
+        //XXX this is a hack,
+        // see also org.apache.isis.core.metamodel.interactions.managed.ManagedProperty.ManagedProperty(ManagedObject, OneToOneAssociation, Where)
         return owner = EntityUtil.reattach(owner);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
index 6442dcd..b2733b5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/ManagedProperty.java
@@ -63,6 +63,11 @@ public final class ManagedProperty extends ManagedMember {
 
     @Getter private final OneToOneAssociation property;
 
+    //XXX suggestion: instead of holding the 'owner' object, let it hold a supplier of the 'owner' object,
+    //such that the supplier always returns the actual owner evaluated lazily without memoization.
+    //Such a change would better support eg.
+    //org.apache.isis.viewer.wicket.model.models.ScalarPropertyModel.getManagedProperty()
+    //Or as an alternative use a memento instead of the ManagedObject.
     private ManagedProperty(
             final @NonNull ManagedObject owner,
             final @NonNull OneToOneAssociation property,
@@ -88,7 +93,7 @@ public final class ManagedProperty extends ManagedMember {
 
     // -- INTERACTION
 
-    public Optional<InteractionVeto> checkValidity(ManagedObject proposedNewValue) {
+    public Optional<InteractionVeto> checkValidity(final ManagedObject proposedNewValue) {
         try {
 
             val validityConsent =
@@ -111,7 +116,7 @@ public final class ManagedProperty extends ManagedMember {
      * @param proposedNewValue
      * @return non-empty if the interaction is not valid for given {@code proposedNewValue}
      */
-    public Optional<InteractionVeto> modifyProperty(@Nullable ManagedObject proposedNewValue) {
+    public Optional<InteractionVeto> modifyProperty(@Nullable final ManagedObject proposedNewValue) {
 
         val interactionVeto = checkValidity(proposedNewValue);
         if(interactionVeto.isPresent()) {