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/05/10 08:48:30 UTC

[isis] branch master updated: ISIS-2340: further simplify InteractionContext

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 1ba2f91  ISIS-2340: further simplify InteractionContext
1ba2f91 is described below

commit 1ba2f91d36e0ec96abb049ad1ac09ec2f9ef492c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun May 10 10:48:17 2020 +0200

    ISIS-2340: further simplify InteractionContext
---
 .../core/metamodel/interactions/AccessContext.java |  3 +-
 .../metamodel/interactions/InteractionContext.java | 87 +++++++++-------------
 .../metamodel/interactions/UsabilityContext.java   | 13 +---
 .../metamodel/interactions/ValidityContext.java    |  3 +-
 .../metamodel/interactions/VisibilityContext.java  | 12 +--
 5 files changed, 43 insertions(+), 75 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/AccessContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/AccessContext.java
index c3664e7..9aedd46 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/AccessContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/AccessContext.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.metamodel.interactions;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.wrapper.events.AccessEvent;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -38,7 +39,7 @@ implements InteractionEventSupplier<AccessEvent> {
             final Identifier identifier,
             final ManagedObject target,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        super(interactionType, interactionInitiatedBy, identifier, target);
+        super(interactionType, interactionInitiatedBy, identifier, target, Where.NOT_SPECIFIED);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
index 7ca66ae..547fe91 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionContext.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.metamodel.interactions;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -27,6 +28,9 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
+import lombok.Getter;
+import lombok.Setter;
+
 /**
  * Represents an interaction between the framework and (a {@link Facet} of) the
  * domain object.
@@ -55,25 +59,6 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
  */
 public abstract class InteractionContext {
 
-    private final InteractionContextType interactionType;
-    private final InteractionInitiatedBy interactionInitiatedBy;
-    private final Identifier identifier;
-    private final ManagedObject target;
-
-    private ManagedObject mixedInAdapter = null; // for mixin members only, obviously
-
-    public InteractionContext(
-            final InteractionContextType interactionType,
-            final InteractionInitiatedBy invocationMethod,
-            final Identifier identifier,
-            final ManagedObject target) {
-        this.interactionType = interactionType;
-        this.interactionInitiatedBy = invocationMethod;
-        this.identifier = identifier;
-        this.target = target;
-    }
-
-
     /**
      * The type of interaction.
      *
@@ -86,12 +71,16 @@ public abstract class InteractionContext {
      * <p>
      * Alternatively, {@link Facet}s can use <tt>instanceof</tt>.
      */
-    public InteractionContextType getInteractionType() {
-        return interactionType;
-    }
-
+    @Getter private final InteractionContextType interactionType;
+    
     /**
-     * The identifier of the object or member that is being identified with.
+     * How the interaction was initiated.
+     */
+    @Getter private final InteractionInitiatedBy initiatedBy;
+    
+    /**
+     * The identifier of the object or member that this interaction is being 
+     * identified with.
      *
      * <p>
      * If the {@link #getInteractionType() type} is
@@ -99,43 +88,41 @@ public abstract class InteractionContext {
      * the {@link #getTarget() target} object's specification. Otherwise will be
      * the identifier of the member.
      */
-    public Identifier getIdentifier() {
-        return identifier;
-    }
-
+    @Getter private final Identifier identifier;
+    
+    /**
+     * The target object that this interaction is associated with.
+     */
+    @Getter private final ManagedObject target;
 
     /**
-     * How the interaction was initiated.
+     * Where the element is to be rendered.
      */
-    public InteractionInitiatedBy getInitiatedBy() {
-        return interactionInitiatedBy;
+    @Getter private final Where where;
+    
+    @Getter @Setter private ManagedObject mixedIn = null; // for mixin members only, obviously
+
+    protected InteractionContext(
+            final InteractionContextType interactionType,
+            final InteractionInitiatedBy invocationMethod,
+            final Identifier identifier,
+            final ManagedObject target,
+            final Where where) {
+        this.interactionType = interactionType;
+        this.initiatedBy = invocationMethod;
+        this.identifier = identifier;
+        this.target = target;
+        this.where = where;
     }
 
+
     /**
      * Convenience method that indicates whether the
      * {@link #getInitiatedBy() interaction was invoked} by the framework.
      */
     public boolean isFrameworkInitiated() {
-        return interactionInitiatedBy == InteractionInitiatedBy.FRAMEWORK;
-    }
-
-    /**
-     * The target object that this interaction is with.
-     */
-    public ManagedObject getTarget() {
-        return target;
+        return initiatedBy == InteractionInitiatedBy.FRAMEWORK;
     }
-
-    // //////////////////////////////////////
-
-    public void setMixedIn(final ManagedObject mixedInAdapter) {
-        this.mixedInAdapter = mixedInAdapter;
-    }
-
-    public ManagedObject getMixedIn() {
-        return mixedInAdapter;
-    }
-
     
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
index ac934c7..03c9385 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
@@ -34,24 +34,13 @@ public abstract class UsabilityContext
 extends InteractionContext
 implements InteractionEventSupplier<UsabilityEvent> {
 
-    private final Where where;
-
     public UsabilityContext(
             final InteractionContextType interactionType,
             final ManagedObject targetAdapter,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
-        super(interactionType, interactionInitiatedBy, identifier, targetAdapter);
-        this.where = where;
-    }
-
-    /**
-     * Where the element is to be rendered.
-     */
-    public Where getWhere() {
-        return where;
+        super(interactionType, interactionInitiatedBy, identifier, targetAdapter, where);
     }
 
-
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
index 0004bd9..85e412d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.metamodel.interactions;
 
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -38,7 +39,7 @@ implements InteractionEventSupplier<ValidityEvent> {
             final ManagedObject target,
             final Identifier identifier,
             final InteractionInitiatedBy invocationMethod) {
-        super(interactionType, invocationMethod, identifier, target);
+        super(interactionType, invocationMethod, identifier, target, Where.NOT_SPECIFIED);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
index df1648e..4049611 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
@@ -34,23 +34,13 @@ public abstract class VisibilityContext
 extends InteractionContext
 implements InteractionEventSupplier<VisibilityEvent> {
 
-    private Where where;
-
     public VisibilityContext(
             final InteractionContextType interactionType,
             final ManagedObject targetAdapter,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
-        super(interactionType, interactionInitiatedBy, identifier, targetAdapter);
-        this.where = where;
-    }
-
-    /**
-     * Where the element is to be rendered.
-     */
-    public Where getWhere() {
-        return where;
+        super(interactionType, interactionInitiatedBy, identifier, targetAdapter, where);
     }
 
 }