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 <ahu...@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); } }