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 d99fd2c  ISIS-2340: move ia-context's head to its own class
d99fd2c is described below

commit d99fd2c284e7a2b23544adb5834c08c81a941538
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Mon May 11 07:11:42 2020 +0200

    ISIS-2340: move ia-context's head to its own class
---
 .../core/metamodel/facets/DomainEventHelper.java   | 12 +--
 .../action/invocation/ActionInvocationFacet.java   |  4 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |  6 +-
 ...ectionAddToFacetForDomainEventFromAbstract.java |  4 +-
 ...nRemoveFromFacetForDomainEventFromAbstract.java |  4 +-
 .../parser/ParseableFacetUsingParser.java          |  4 +-
 ...tySetterOrClearFacetForDomainEventAbstract.java |  6 +-
 .../core/metamodel/interactions/AccessContext.java |  2 +-
 .../interactions/ActionArgUsabilityContext.java    |  2 +-
 .../interactions/ActionArgValidityContext.java     |  2 +-
 .../interactions/ActionArgVisibilityContext.java   |  2 +-
 .../interactions/ActionUsabilityContext.java       |  2 +-
 .../interactions/ActionValidityContext.java        |  2 +-
 .../interactions/ActionVisibilityContext.java      |  2 +-
 .../interactions/CollectionAccessContext.java      |  2 +-
 .../interactions/CollectionAddToContext.java       |  2 +-
 .../interactions/CollectionRemoveFromContext.java  |  2 +-
 .../interactions/CollectionUsabilityContext.java   |  2 +-
 .../interactions/CollectionVisibilityContext.java  |  2 +-
 .../metamodel/interactions/InteractionContext.java | 66 +----------------
 .../metamodel/interactions/InteractionHead.java    | 85 ++++++++++++++++++++++
 .../metamodel/interactions/ObjectTitleContext.java |  2 +-
 .../interactions/ObjectValidityContext.java        |  2 +-
 .../interactions/ObjectVisibilityContext.java      |  2 +-
 .../metamodel/interactions/ParseValueContext.java  |  2 +-
 .../interactions/PropertyAccessContext.java        |  2 +-
 .../interactions/PropertyModifyContext.java        |  2 +-
 .../interactions/PropertyUsabilityContext.java     |  2 +-
 .../interactions/PropertyVisibilityContext.java    |  2 +-
 .../metamodel/interactions/UsabilityContext.java   |  2 +-
 .../metamodel/interactions/ValidityContext.java    |  2 +-
 .../metamodel/interactions/VisibilityContext.java  |  2 +-
 .../core/metamodel/spec/feature/ObjectAction.java  |  8 +-
 .../spec/feature/ObjectActionParameter.java        | 12 +--
 .../metamodel/spec/interaction/ManagedAction.java  |  4 +-
 .../spec/interaction/ManagedParameter.java         |  6 +-
 .../specloader/specimpl/ObjectActionDefault.java   | 16 ++--
 .../specloader/specimpl/ObjectActionMixedIn.java   | 10 +--
 .../specimpl/ObjectActionParameterAbstract.java    | 14 ++--
 .../specimpl/ObjectAssociationAbstract.java        |  6 +-
 .../specimpl/OneToManyAssociationMixedIn.java      |  6 +-
 .../specimpl/OneToOneAssociationMixedIn.java       |  6 +-
 ...ionParameterAbstractTest_getId_and_getName.java |  4 +-
 .../command/CommandExecutorServiceDefault.java     |  4 +-
 .../handlers/DomainObjectInvocationHandler.java    |  6 +-
 .../viewer/vaadin/ui/pages/main/MainView.java      |  4 +-
 .../runtime/system/ObjectMemberAbstractTest.java   |  6 +-
 .../model/action/form/FormPendingParamUiModel.java |  4 +-
 .../common/model/feature/ParameterUiModel.java     |  2 +-
 .../domainobjects/ObjectActionReprRenderer.java    |  4 +-
 .../viewer/resources/ObjectActionArgHelper.java    |  6 +-
 .../viewer/wicket/model/models/ActionModel.java    | 12 +--
 .../wicket/model/models/ScalarParameterModel.java  | 10 +--
 53 files changed, 205 insertions(+), 182 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/DomainEventHelper.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/DomainEventHelper.java
index adba4d4..9e02b3e 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/DomainEventHelper.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/DomainEventHelper.java
@@ -43,7 +43,7 @@ import 
org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.internal.reflection._Reflect;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.services.events.MetamodelEventService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -73,7 +73,7 @@ public class DomainEventHelper {
             @NonNull final Class<? extends ActionDomainEvent<?>> eventType,
             final ObjectAction objectAction,
             final IdentifiedHolder identified,
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> argumentAdapters,
             final ManagedObject resultAdapter) {
         
@@ -88,7 +88,7 @@ public class DomainEventHelper {
             @NonNull final ActionDomainEvent<?> existingEvent,
             final ObjectAction objectAction,
             final IdentifiedHolder identified,
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> argumentAdapters,
             final ManagedObject resultAdapter) {
         
@@ -103,7 +103,7 @@ public class DomainEventHelper {
             final ActionDomainEvent<S> existingEvent,
             final ObjectAction objectAction,
             final IdentifiedHolder identified,
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> argumentAdapters,
             final ManagedObject resultAdapter) {
         
@@ -214,7 +214,7 @@ public class DomainEventHelper {
             final Class<? extends PropertyDomainEvent<S, T>> eventType,
                     final PropertyDomainEvent<S, T> existingEvent,
                     final IdentifiedHolder identified,
-                    final Head head,
+                    final InteractionHead head,
                     final T oldValue,
                     final T newValue) {
         
@@ -302,7 +302,7 @@ public class DomainEventHelper {
             final Class<? extends CollectionDomainEvent<S, T>> eventType,
                     final CollectionDomainEvent<S, T> existingEvent,
                     final IdentifiedHolder identified,
-                    final Head head,
+                    final InteractionHead head,
                     final CollectionDomainEvent.Of of,
                     final T reference) {
         
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
index 7653722..e7ff724 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
@@ -22,7 +22,7 @@ package 
org.apache.isis.core.metamodel.facets.actions.action.invocation;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -39,7 +39,7 @@ public interface ActionInvocationFacet extends Facet {
 
     ManagedObject invoke(
             ObjectAction owningAction,
-            Head head,
+            InteractionHead head,
             Can<ManagedObject> argumentAdapters,
             InteractionInitiatedBy interactionInitiatedBy);
     
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index b2b8cc0..c11f987 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -61,7 +61,7 @@ import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import 
org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
 import 
org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import 
org.apache.isis.core.metamodel.services.ixn.InteractionDtoServiceInternal;
 import 
org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -117,7 +117,7 @@ implements ImperativeFacet {
     @Override
     public ManagedObject invoke(
             final ObjectAction owningAction,
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> argumentAdapters,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
@@ -437,7 +437,7 @@ implements ImperativeFacet {
                 
                 currentExecution.setDto(invocationDto);
                 
-                val head = Head.mixedIn(targetAdapter, mixedInAdapter);
+                val head = InteractionHead.mixedIn(targetAdapter, 
mixedInAdapter);
 
 
                 // set the startedAt (and update command if this is the 
top-most member execution)
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
index e013fce..599ee8e 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
@@ -32,7 +32,7 @@ import 
org.apache.isis.core.metamodel.facets.DomainEventHelper;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
 import 
org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 import 
org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 import static org.apache.isis.core.commons.internal.base._Casts.uncheckedCast;
@@ -86,7 +86,7 @@ implements CollectionAddToFacet {
             }
         }
 
-        final Head head = Head.simple(targetAdapter);
+        final InteractionHead head = InteractionHead.simple(targetAdapter);
         
         // either doesn't contain object, or doesn't have set semantics, so
         // execute the add wrapped between the executing and executed events 
...
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
index 47c1741..5cacc7d 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
@@ -35,7 +35,7 @@ import 
org.apache.isis.core.metamodel.facets.DomainEventHelper;
 import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
 import 
org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 import 
org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 
@@ -87,7 +87,7 @@ implements CollectionRemoveFromFacet {
             return;
         }
 
-        final Head head = Head.simple(targetAdapter);
+        final InteractionHead head = InteractionHead.simple(targetAdapter);
         
         // contains the element, so
         // execute the remove wrapped between the executing and executed 
events ...
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
index c4a3598..3733aae 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
@@ -31,11 +31,11 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import 
org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.interactions.ParseValueContext;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
@@ -80,7 +80,7 @@ implements ParseableFacet {
             final Identifier identifier = getIdentified().getIdentifier();
             final ParseValueContext parseValueContext =
                     new ParseValueContext(
-                            Head.simple(contextAdapter), identifier, 
entryAdapter, interactionInitiatedBy
+                            InteractionHead.simple(contextAdapter), 
identifier, entryAdapter, interactionInitiatedBy
                             );
             validate(parseValueContext);
         }
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index cea72e1..9d3fac8 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -44,7 +44,7 @@ import 
org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollect
 import 
org.apache.isis.core.metamodel.facets.properties.publish.PublishedPropertyFacet;
 import 
org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
 import 
org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import 
org.apache.isis.core.metamodel.services.ixn.InteractionDtoServiceInternal;
 import 
org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -156,7 +156,7 @@ extends SingleValueFacetAbstract<Class<? extends 
PropertyDomainEvent<?,?>>> {
             final InteractionInitiatedBy interactionInitiatedBy) {
 
         getTransactionService().executeWithinTransaction(()->{
-            doSetOrClearProperty(style, owningProperty, 
Head.simple(targetAdapter), newValueAdapter, interactionInitiatedBy);
+            doSetOrClearProperty(style, owningProperty, 
InteractionHead.simple(targetAdapter), newValueAdapter, interactionInitiatedBy);
         });
 
     }
@@ -164,7 +164,7 @@ extends SingleValueFacetAbstract<Class<? extends 
PropertyDomainEvent<?,?>>> {
     private void doSetOrClearProperty(
             final Style style,
             final OneToOneAssociation owningProperty,
-            final Head head,
+            final InteractionHead head,
             final ManagedObject newValueAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
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 cd3d387..9268b71 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
@@ -36,7 +36,7 @@ implements InteractionEventSupplier<AccessEvent> {
     public AccessContext(
             final InteractionContextType interactionType,
             final Identifier identifier,
-            final Head head,
+            final InteractionHead head,
             final InteractionInitiatedBy interactionInitiatedBy) {
         super(interactionType, interactionInitiatedBy, identifier, head, 
Where.NOT_SPECIFIED);
     }
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgUsabilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgUsabilityContext.java
index 61ab7ad..72508b6 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgUsabilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgUsabilityContext.java
@@ -44,7 +44,7 @@ implements ActionInteractionContext {
     @Getter private final int position;
 
     public ActionArgUsabilityContext(
-            final Head head,
+            final InteractionHead head,
             final ObjectAction objectAction,
             final Identifier id,
             final Can<ManagedObject> args,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
index 15efc6c..ed64a49 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
@@ -45,7 +45,7 @@ implements ProposedHolder, ActionInteractionContext {
     @Getter private final int position;
 
     public ActionArgValidityContext(
-            final Head head,
+            final InteractionHead head,
             final ObjectAction objectAction,
             final Identifier id,
             final Can<ManagedObject> args,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgVisibilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgVisibilityContext.java
index 1c5b1d2..73b0283 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgVisibilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgVisibilityContext.java
@@ -44,7 +44,7 @@ implements ActionInteractionContext {
     @Getter private final int position;
     
     public ActionArgVisibilityContext(
-            final Head head,
+            final InteractionHead head,
             final ObjectAction objectAction,
             final Identifier id,
             final Can<ManagedObject> args,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionUsabilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionUsabilityContext.java
index bbdf0e5..ce6bff3 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionUsabilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionUsabilityContext.java
@@ -39,7 +39,7 @@ implements ActionInteractionContext {
     private final ObjectAction objectAction;
 
     public ActionUsabilityContext(
-            final Head head,
+            final InteractionHead head,
             final ObjectAction objectAction,
             final Identifier id,
             final InteractionInitiatedBy interactionInitiatedBy,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
index f8a09fb..b204419 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
@@ -43,7 +43,7 @@ implements ActionInteractionContext {
     @Getter private final Can<ManagedObject> args;
 
     public ActionValidityContext(
-            final Head head,
+            final InteractionHead head,
             final ObjectAction objectAction,
             final Identifier id,
             final Can<ManagedObject> args,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionVisibilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionVisibilityContext.java
index 3abfa2f..1b0de8e 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionVisibilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionVisibilityContext.java
@@ -39,7 +39,7 @@ implements ActionInteractionContext  {
     private final ObjectAction objectAction;
 
     public ActionVisibilityContext(
-            final Head head,
+            final InteractionHead head,
             final ObjectAction objectAction,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAccessContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAccessContext.java
index a61ac46..8e363c3 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAccessContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAccessContext.java
@@ -33,7 +33,7 @@ import 
org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 public class CollectionAccessContext extends AccessContext {
 
     public CollectionAccessContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy) {
         super(InteractionContextType.COLLECTION_READ, identifier, head, 
interactionInitiatedBy);
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAddToContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAddToContext.java
index 3976322..8423639 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAddToContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionAddToContext.java
@@ -36,7 +36,7 @@ implements ProposedHolder {
     private final ManagedObject proposed;
 
     public CollectionAddToContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier id,
             final ManagedObject proposed,
             final InteractionInitiatedBy interactionInitiatedBy) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionRemoveFromContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionRemoveFromContext.java
index 02bb088..b6a84e4 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionRemoveFromContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionRemoveFromContext.java
@@ -38,7 +38,7 @@ implements ProposedHolder{
     private final ManagedObject proposed;
 
     public CollectionRemoveFromContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final ManagedObject proposed,
             final InteractionInitiatedBy interactionInitiatedBy) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionUsabilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionUsabilityContext.java
index de014a0..cb49588 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionUsabilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionUsabilityContext.java
@@ -33,7 +33,7 @@ public class CollectionUsabilityContext
 extends UsabilityContext {
 
     public CollectionUsabilityContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionVisibilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionVisibilityContext.java
index 89406ef..fa7767a 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionVisibilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/CollectionVisibilityContext.java
@@ -35,7 +35,7 @@ public class CollectionVisibilityContext
 extends VisibilityContext {
 
     public CollectionVisibilityContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifierAdapter,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
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 1c12751..d1a32b9 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
@@ -19,15 +19,9 @@
 
 package org.apache.isis.core.metamodel.interactions;
 
-import java.util.Objects;
-import java.util.Optional;
-
-import javax.annotation.Nullable;
-
 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.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -35,8 +29,6 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
 import lombok.Getter;
-import lombok.NonNull;
-import lombok.Value;
 
 /**
  * Represents an interaction between the framework and (a {@link Facet} of) the
@@ -67,60 +59,6 @@ import lombok.Value;
 public abstract class InteractionContext {
 
     /**
-     * Model that holds the objects involved with the interaction.
-     * @since 2.0
-     */
-    @Value(staticConstructor = "unchecked")
-    public static class Head {
-        /**
-         * The owning object that this interaction is associated with.
-         */
-        @NonNull private final ManagedObject owner;
-        
-        /**
-         * The target object that this interaction is associated with.
-         */
-        @NonNull private final ManagedObject target;
-        
-        /** in support of legacy code */
-        public static Head of(@NonNull ManagedObject owner, @NonNull 
ManagedObject target) {
-            if(ManagedObject.isSpecified(owner) 
-                    && owner.getSpecification().getBeanSort().isMixin()) {
-                throw _Exceptions.unrecoverableFormatted("unexpected: owner is 
a mixin %s", owner);
-            }
-            if(ManagedObject.isSpecified(target)                    
-                    && target.getSpecification().getBeanSort().isMixin()
-                    && target.getPojo()==null) {
-                throw _Exceptions.unrecoverableFormatted("target not spec. 
%s", target);
-            }
-            return unchecked(owner, target);
-        }
-        
-        /** when owner equals target (no mixin) */
-        public static Head simple(ManagedObject owner) {
-            return Head.of(owner, owner);
-        }
-        
-        /** 
-         * as used by the domain event subsystem
-         * @return optionally the owner, if the target is a mixin 
-         */
-        public Optional<ManagedObject> getMixedIn() {
-            return Objects.equals(getOwner(), getTarget()) 
-                    ? Optional.empty()
-                    : Optional.of(getOwner());
-        }
-
-        /** in support of legacy code */
-        public static Head mixedIn(@NonNull ManagedObject target, @Nullable 
ManagedObject mixedIn) {
-            return mixedIn==null
-                    ? of(target, target)
-                    : of(mixedIn, target);
-        }
-        
-    }
-    
-    /**
      * The type of interaction.
      *
      * <p>
@@ -154,7 +92,7 @@ public abstract class InteractionContext {
     /**
      * Model that holds the object involved with the interaction.
      */
-    @Getter private final Head head;
+    @Getter private final InteractionHead head;
     
     /**
      * Where the element is to be rendered.
@@ -165,7 +103,7 @@ public abstract class InteractionContext {
             final InteractionContextType interactionType,
             final InteractionInitiatedBy invocationMethod,
             final Identifier identifier,
-            final Head head,
+            final InteractionHead head,
             final Where where) {
         this.interactionType = interactionType;
         this.initiatedBy = invocationMethod;
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionHead.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionHead.java
new file mode 100644
index 0000000..0911256
--- /dev/null
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionHead.java
@@ -0,0 +1,85 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.metamodel.interactions;
+
+import java.util.Objects;
+import java.util.Optional;
+
+import javax.annotation.Nullable;
+
+import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+
+import lombok.NonNull;
+import lombok.Value;
+
+/**
+ * Model that holds the objects involved with the interaction.
+ * @since 2.0
+ */
+@Value(staticConstructor = "unchecked")
+public class InteractionHead {
+    /**
+     * The owning object of an interaction.
+     */
+    @NonNull private final ManagedObject owner;
+    
+    /** 
+     * Typically equal to {@code owner}, except for mixins, 
+     * where {@code target} is the mixin instance. 
+     */
+    @NonNull private final ManagedObject target;
+    
+    /** factory with consistency checks */
+    public static InteractionHead of(@NonNull ManagedObject owner, @NonNull 
ManagedObject target) {
+        if(ManagedObject.isSpecified(owner) 
+                && owner.getSpecification().getBeanSort().isMixin()) {
+            throw _Exceptions.unrecoverableFormatted("unexpected: owner is a 
mixin %s", owner);
+        }
+        if(ManagedObject.isSpecified(target)                    
+                && target.getSpecification().getBeanSort().isMixin()
+                && target.getPojo()==null) {
+            throw _Exceptions.unrecoverableFormatted("target not spec. %s", 
target);
+        }
+        return unchecked(owner, target);
+    }
+    
+    /** Simple case, when owner equals target. (no mixin) */
+    public static InteractionHead simple(ManagedObject owner) {
+        return InteractionHead.of(owner, owner);
+    }
+    
+    /** 
+     * as used by the domain event subsystem
+     * @return optionally the owner, based on whether the target is a mixin 
+     */
+    public Optional<ManagedObject> getMixedIn() {
+        return Objects.equals(getOwner(), getTarget()) 
+                ? Optional.empty()
+                : Optional.of(getOwner());
+    }
+
+    /** in support of legacy code, ultimately a target for refactoring */
+    public static InteractionHead mixedIn(@NonNull ManagedObject target, 
@Nullable ManagedObject mixedIn) {
+        return mixedIn==null
+                ? of(target, target)
+                : of(mixedIn, target);
+    }
+    
+}
\ No newline at end of file
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectTitleContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectTitleContext.java
index d4a9ccd..85208b9 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectTitleContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectTitleContext.java
@@ -43,7 +43,7 @@ extends AccessContext {
             final InteractionInitiatedBy interactionInitiatedBy) {
         
         super(InteractionContextType.OBJECT_TITLE, 
-                identifier, Head.simple(targetAdapter), 
interactionInitiatedBy);
+                identifier, InteractionHead.simple(targetAdapter), 
interactionInitiatedBy);
         this.title = title;
     }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
index 6d4ce7f..4306071 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
@@ -41,7 +41,7 @@ implements ProposedHolder {
             final InteractionInitiatedBy interactionInitiatedBy) {
         
         super(InteractionContextType.OBJECT_VALIDATE, 
-                Head.simple(targetAdapter), identifier, 
interactionInitiatedBy);
+                InteractionHead.simple(targetAdapter), identifier, 
interactionInitiatedBy);
     }
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
index 74db6e4..6553836 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
@@ -44,7 +44,7 @@ implements ProposedHolder {
         
         super(
                 InteractionContextType.OBJECT_VISIBILITY, 
-                Head.simple(targetAdapter), identifier, 
interactionInitiatedBy, where);
+                InteractionHead.simple(targetAdapter), identifier, 
interactionInitiatedBy, where);
     }
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
index 45a095e..6c8b2f7 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
@@ -38,7 +38,7 @@ implements ProposedHolder {
     private final ManagedObject proposed;
 
     public ParseValueContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final ManagedObject proposed,
             final InteractionInitiatedBy interactionInitiatedBy) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
index 638cdd8..d021f0e 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
@@ -37,7 +37,7 @@ extends AccessContext {
     private final ManagedObject value;
 
     public PropertyAccessContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier id,
             final ManagedObject value,
             final InteractionInitiatedBy interactionInitiatedBy) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
index 5f05e94..ae486f4 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
@@ -38,7 +38,7 @@ implements ProposedHolder {
     private final ManagedObject proposed;
 
     public PropertyModifyContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier id,
             final ManagedObject proposed,
             final InteractionInitiatedBy interactionInitiatedBy) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
index 59d6aa7..80f9442 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
@@ -35,7 +35,7 @@ public class PropertyUsabilityContext
 extends UsabilityContext {
 
     public PropertyUsabilityContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
index 9eb845d..d61ebea 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
@@ -34,7 +34,7 @@ import 
org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 public class PropertyVisibilityContext extends VisibilityContext {
 
     public PropertyVisibilityContext(
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
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 34e9032..55e1c40 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
@@ -35,7 +35,7 @@ implements InteractionEventSupplier<UsabilityEvent> {
 
     public UsabilityContext(
             final InteractionContextType interactionType,
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where 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 718dfc5..f21c578 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
@@ -35,7 +35,7 @@ implements InteractionEventSupplier<ValidityEvent> {
 
     public ValidityContext(
             final InteractionContextType interactionType,
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy invocationMethod) {
         super(interactionType, invocationMethod, identifier, head, 
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 921bf65..1f15249 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
@@ -35,7 +35,7 @@ implements InteractionEventSupplier<VisibilityEvent> {
 
     public VisibilityContext(
             final InteractionContextType interactionType,
-            final Head head,
+            final InteractionHead head,
             final Identifier identifier,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index 6c79feb..135305f 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -52,7 +52,7 @@ import 
org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
 import 
org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
 import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import 
org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderFacetComparator;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -109,7 +109,7 @@ public interface ObjectAction extends ObjectMember {
      * @param mixedInAdapter - will be null for regular actions, and for mixin 
actions.  When a mixin action invokes its underlying mixedIn action, then will 
be populated (so that the ActionDomainEvent can correctly provide the 
underlying mixin)
      */
     ManagedObject executeWithRuleChecking(
-            Head head,
+            InteractionHead head,
             Can<ManagedObject> parameters,
             InteractionInitiatedBy interactionInitiatedBy,
             Where where) throws AuthorizationException;
@@ -123,7 +123,7 @@ public interface ObjectAction extends ObjectMember {
      * (so that the ActionDomainEvent can correctly provide the underlying 
mixin)
      */
     ManagedObject execute(
-            Head head,
+            InteractionHead head,
             Can<ManagedObject> parameters,
             InteractionInitiatedBy interactionInitiatedBy);
 
@@ -160,7 +160,7 @@ public interface ObjectAction extends ObjectMember {
 
     // -- Model for Parameter Negotiation
 
-    PendingParameterModelHead newPendingParameterModelHead(
+    PendingParameterModelHead interactionHead(
             @NonNull ManagedObject actionOwner);
     
     // -- Parameters (declarative)
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index bd309866..c2820fc 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import 
org.apache.isis.core.metamodel.specloader.specimpl.PendingParameterModel;
@@ -78,7 +78,7 @@ public interface ObjectActionParameter extends ObjectFeature, 
CurrentHolder {
 
     // internal API
     ActionArgValidityContext createProposedArgumentInteractionContext(
-            Head head,
+            InteractionHead head,
             Can<ManagedObject> args,
             int position,
             InteractionInitiatedBy interactionInitiatedBy);
@@ -137,7 +137,7 @@ public interface ObjectActionParameter extends 
ObjectFeature, CurrentHolder {
     /** default value as result of a initial param value fixed point search */
     default ManagedObject getDefault(ManagedObject actionOnwer) {
         return getAction()
-                .newPendingParameterModelHead(actionOnwer).defaults()
+                .interactionHead(actionOnwer).defaults()
                 .getParamValues()
                 .getElseFail(getNumber());
     }
@@ -151,7 +151,7 @@ public interface ObjectActionParameter extends 
ObjectFeature, CurrentHolder {
      * @return
      */
     Consent isVisible(
-            Head head,
+            InteractionHead head,
             Can<ManagedObject> pendingArgs,
             InteractionInitiatedBy interactionInitiatedBy);
 
@@ -163,7 +163,7 @@ public interface ObjectActionParameter extends 
ObjectFeature, CurrentHolder {
      * @return
      */
     Consent isUsable(
-            Head head,
+            InteractionHead head,
             Can<ManagedObject> pendingArgs,
             InteractionInitiatedBy interactionInitiatedBy);
 
@@ -176,7 +176,7 @@ public interface ObjectActionParameter extends 
ObjectFeature, CurrentHolder {
      * @return
      */
     String isValid(
-            Head head,
+            InteractionHead head,
             Object proposedValue,
             InteractionInitiatedBy interactionInitiatedBy);
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedAction.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedAction.java
index cfb0da0..b965e24 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedAction.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedAction.java
@@ -23,7 +23,7 @@ import java.util.Optional;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Either;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
@@ -78,7 +78,7 @@ public final class ManagedAction extends ManagedMember {
         //TODO validate params, and handle invocation exceptions
         
         val actionResult = getAction()
-                .execute(Head.simple(getOwner()) , actionParameters, 
InteractionInitiatedBy.USER);
+                .execute(InteractionHead.simple(getOwner()) , 
actionParameters, InteractionInitiatedBy.USER);
         
         return _Either.left(actionResult);
         
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedParameter.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedParameter.java
index 78c2f2c..a8f6d33 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedParameter.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/interaction/ManagedParameter.java
@@ -22,7 +22,7 @@ import java.util.Optional;
 
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.Veto;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 
@@ -42,8 +42,8 @@ public class ManagedParameter {
     
     public Optional<InteractionVeto> validate() {
         
-        val head2 = 
owningAction.getAction().newPendingParameterModelHead(getOwningObject());
-        val head = Head.of(head2.getActionOwner(), head2.getActionTarget());
+        val head2 = 
owningAction.getAction().interactionHead(getOwningObject());
+        val head = InteractionHead.of(head2.getActionOwner(), 
head2.getActionTarget());
         
         return Optional.ofNullable(
             getParameter()
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
index c592bc5..d9e1253 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
@@ -55,7 +55,7 @@ import 
org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoice
 import org.apache.isis.core.metamodel.interactions.ActionUsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ActionValidityContext;
 import org.apache.isis.core.metamodel.interactions.ActionVisibilityContext;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -148,7 +148,7 @@ public class ObjectActionDefault extends 
ObjectMemberAbstract implements ObjectA
     }
 
     @Override
-    public PendingParameterModelHead newPendingParameterModelHead(@NonNull 
ManagedObject actionOwner) {
+    public PendingParameterModelHead interactionHead(@NonNull ManagedObject 
actionOwner) {
         return PendingParameterModelHead.of(this, actionOwner, actionOwner);
     }
     
@@ -223,8 +223,8 @@ public class ObjectActionDefault extends 
ObjectMemberAbstract implements ObjectA
         return parameters.getElseFail(position);
     }
 
-    protected Head headFor(final ManagedObject target) {
-        return Head.simple(target);
+    protected InteractionHead headFor(final ManagedObject target) {
+        return InteractionHead.simple(target);
     }
 
     // -- visable, usable
@@ -388,7 +388,7 @@ public class ObjectActionDefault extends 
ObjectMemberAbstract implements ObjectA
 
     @Override
     public ManagedObject executeWithRuleChecking(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> arguments,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
@@ -427,7 +427,7 @@ public class ObjectActionDefault extends 
ObjectMemberAbstract implements ObjectA
      */
     @Override
     public ManagedObject execute(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> argumentAdapters,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
@@ -440,7 +440,7 @@ public class ObjectActionDefault extends 
ObjectMemberAbstract implements ObjectA
      * private API, called by mixins
      */
     protected ManagedObject executeInternal(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> argumentAdapters,
             final InteractionInitiatedBy interactionInitiatedBy) {
         
@@ -494,7 +494,7 @@ public class ObjectActionDefault extends 
ObjectMemberAbstract implements ObjectA
         
         // else use the new defaultNXxx approach for each param in turn
         // (the reflector will have made sure both aren't installed).
-        return newPendingParameterModelHead(target)
+        return interactionHead(target)
                 .defaults()
                 .getParamValues();
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
index da2ca53..513e301 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -93,9 +93,9 @@ public class ObjectActionMixedIn extends ObjectActionDefault 
implements MixedInM
     }
 
     @Override
-    protected Head headFor(final ManagedObject owner) {
+    protected InteractionHead headFor(final ManagedObject owner) {
         val target = mixinAdapterFor(mixinType, owner);
-        return Head.of(owner, target);
+        return InteractionHead.of(owner, target);
     }
     
     @Override
@@ -128,7 +128,7 @@ public class ObjectActionMixedIn extends 
ObjectActionDefault implements MixedInM
     }
 
     @Override
-    public PendingParameterModelHead newPendingParameterModelHead(@NonNull 
ManagedObject actionOwner) {
+    public PendingParameterModelHead interactionHead(@NonNull ManagedObject 
actionOwner) {
         return PendingParameterModelHead.of(this, actionOwner, 
mixinAdapterFor(actionOwner));
     }
 
@@ -152,7 +152,7 @@ public class ObjectActionMixedIn extends 
ObjectActionDefault implements MixedInM
 
     @Override
     public ManagedObject execute(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> arguments,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
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 f7c456e..0c86e9f 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
@@ -49,7 +49,7 @@ import 
org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefau
 import org.apache.isis.core.metamodel.interactions.ActionArgUsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
 import org.apache.isis.core.metamodel.interactions.ActionArgVisibilityContext;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
@@ -304,7 +304,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
     // > Visibility
 
     private ActionArgVisibilityContext createArgumentVisibilityContext(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> pendingArgs,
             final int position,
             final InteractionInitiatedBy interactionInitiatedBy) {
@@ -315,7 +315,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
 
     @Override
     public Consent isVisible(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> pendingArgs,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
@@ -328,7 +328,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
     // > Usability
 
     private ActionArgUsabilityContext createArgumentUsabilityContext(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> pendingArgs,
             final int position,
             final InteractionInitiatedBy interactionInitiatedBy) {
@@ -344,7 +344,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
 
     @Override
     public Consent isUsable(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> pendingArgs,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
@@ -360,7 +360,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
 
     @Override
     public ActionArgValidityContext createProposedArgumentInteractionContext(
-            final Head head,
+            final InteractionHead head,
             final Can<ManagedObject> proposedArguments,
             final int position,
             final InteractionInitiatedBy interactionInitiatedBy) {
@@ -371,7 +371,7 @@ implements ObjectActionParameter, FacetHolder.Delegating {
 
     @Override
     public String isValid(
-            final Head head,
+            final InteractionHead head,
             final Object proposedValue,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
index 9e5cf16..f267e36 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
@@ -27,7 +27,7 @@ import 
org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFace
 import 
org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import 
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import 
org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -50,8 +50,8 @@ implements ObjectAssociation {
         this.specification = specification;
     }
     
-    protected Head headFor(final ManagedObject ownerAdapter) {
-        return Head.simple(ownerAdapter);
+    protected InteractionHead headFor(final ManagedObject ownerAdapter) {
+        return InteractionHead.simple(ownerAdapter);
     }
     
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index 8e7cfbc..f90f207 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -35,7 +35,7 @@ import 
org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import 
org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
 import 
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import 
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import 
org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -133,9 +133,9 @@ public class OneToManyAssociationMixedIn extends 
OneToManyAssociationDefault imp
     }
     
     @Override
-    protected Head headFor(final ManagedObject mixedInAdapter) {
+    protected InteractionHead headFor(final ManagedObject mixedInAdapter) {
         val mixinAdapter = mixinAdapterFor(mixinType, mixedInAdapter);
-        return Head.of(mixedInAdapter, mixinAdapter);
+        return InteractionHead.of(mixedInAdapter, mixinAdapter);
     }
 
     private DisabledFacet disabledFacet() {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
index af0f350..64264c0 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
@@ -34,7 +34,7 @@ import 
org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import 
org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
 import 
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import 
org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import 
org.apache.isis.core.metamodel.services.publishing.PublisherDispatchService;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -118,9 +118,9 @@ public class OneToOneAssociationMixedIn extends 
OneToOneAssociationDefault imple
     }
     
     @Override
-    protected Head headFor(final ManagedObject mixedInAdapter) {
+    protected InteractionHead headFor(final ManagedObject mixedInAdapter) {
         val mixinAdapter = mixinAdapterFor(mixinType, mixedInAdapter);
-        return Head.of(mixedInAdapter, mixinAdapter);
+        return InteractionHead.of(mixedInAdapter, mixinAdapter);
     }
 
     private DisabledFacet disabledFacet() {
diff --git 
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
 
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
index 8cc0a38..56bb45d 100644
--- 
a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
+++ 
b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
@@ -39,7 +39,7 @@ import 
org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.TypedHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -84,7 +84,7 @@ public class 
ObjectActionParameterAbstractTest_getId_and_getName {
 
         @Override
         public String isValid(
-                final Head head,
+                final InteractionHead head,
                 final Object proposedValue,
                 final InteractionInitiatedBy interactionInitiatedBy) {
             return null;
diff --git 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index c744d24..1d01192 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -54,7 +54,7 @@ import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import 
org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -190,7 +190,7 @@ public class CommandExecutorServiceDefault implements 
CommandExecutorService {
                 // it will switch the targetAdapter to be the mixedInAdapter 
transparently
                 val argAdapters = argAdaptersFor(actionDto);
 
-                val resultAdapter = 
objectAction.execute(Head.simple(targetAdapter)
+                val resultAdapter = 
objectAction.execute(InteractionHead.simple(targetAdapter)
                         , argAdapters, InteractionInitiatedBy.FRAMEWORK);
 
                 // flush any Isis PersistenceCommands pending
diff --git 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index c451d1f..39df968 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -51,7 +51,7 @@ import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet.Intent;
 import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -645,8 +645,8 @@ public class DomainObjectInvocationHandler<T> extends 
DelegatingInvocationHandle
         
         return runExecutionTask(()->{
             val interactionInitiatedBy = getInteractionInitiatedBy();
-            val head2 = 
objectAction.newPendingParameterModelHead(targetAdapter);
-            val head = Head.of(head2.getActionOwner(), 
head2.getActionTarget()); 
+            val head2 = objectAction.interactionHead(targetAdapter);
+            val head = InteractionHead.of(head2.getActionOwner(), 
head2.getActionTarget()); 
             
             val returnedAdapter = objectAction.execute(
                     head, argAdapters,
diff --git 
a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView.java
 
b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView.java
index 2a09806..35ab841 100644
--- 
a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView.java
+++ 
b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/pages/main/MainView.java
@@ -34,7 +34,7 @@ import com.vaadin.flow.theme.lumo.Lumo;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
 import org.apache.isis.incubator.viewer.vaadin.model.action.ActionVaa;
 import 
org.apache.isis.incubator.viewer.vaadin.ui.components.UiComponentFactoryVaa;
@@ -106,7 +106,7 @@ implements BeforeEnterObserver {
 
         val result = objectAction
                 .execute(
-                        Head.simple(actionOwner),
+                        InteractionHead.simple(actionOwner),
                         Can.empty(),
                         InteractionInitiatedBy.USER
                         );
diff --git 
a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
 
b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index 00ed51d..3258f38 100644
--- 
a/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ 
b/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -56,7 +56,7 @@ import 
org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import 
org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractAlwaysEverywhere;
 import 
org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
 import 
org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetNone;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.interactions.PropertyUsabilityContext;
 import org.apache.isis.core.metamodel.interactions.PropertyVisibilityContext;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
@@ -220,7 +220,7 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract 
{
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
         return new PropertyUsabilityContext(
-                Head.simple(target), getIdentifier(), interactionInitiatedBy, 
where);
+                InteractionHead.simple(target), getIdentifier(), 
interactionInitiatedBy, where);
     }
 
     @Override
@@ -229,7 +229,7 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract 
{
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
         return new PropertyVisibilityContext(
-                Head.simple(target), getIdentifier(), interactionInitiatedBy, 
where);
+                InteractionHead.simple(target), getIdentifier(), 
interactionInitiatedBy, where);
     }
 
 
diff --git 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
index 4054424..c0c89dc 100644
--- 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
+++ 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/form/FormPendingParamUiModel.java
@@ -20,7 +20,7 @@ package org.apache.isis.viewer.common.model.action.form;
 
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import 
org.apache.isis.core.metamodel.specloader.specimpl.PendingParameterModel;
 import org.apache.isis.viewer.common.model.feature.ParameterUiModel;
 
@@ -35,7 +35,7 @@ public class FormPendingParamUiModel {
     final Consent usabilityConsent;
     
     public static FormPendingParamUiModel of(
-            Head head,
+            InteractionHead head,
             ParameterUiModel paramUiModel, 
             PendingParameterModel pendingArgs) {
 
diff --git 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ParameterUiModel.java
 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ParameterUiModel.java
index 098766d..0bbc436 100644
--- 
a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ParameterUiModel.java
+++ 
b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ParameterUiModel.java
@@ -82,7 +82,7 @@ public interface ParameterUiModel extends ScalarUiModel {
     }
 
     default PendingParameterModelHead getPendingParamHead() {
-        return 
getMetaModel().getAction().newPendingParameterModelHead(getOwner());
+        return getMetaModel().getAction().interactionHead(getOwner());
     }
     
 
diff --git 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
index 3d5e82c..af97025 100644
--- 
a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
+++ 
b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
@@ -158,7 +158,7 @@ public class ObjectActionReprRenderer extends 
AbstractObjectMemberReprRenderer<O
             final InteractionInitiatedBy interactionInitiatedBy) {
         
         val pendingArgs = param.getAction()
-                .newPendingParameterModelHead(objectAdapter)
+                .interactionHead(objectAdapter)
                 .emptyModel();
         
         val choiceAdapters = param.getChoices(pendingArgs, 
interactionInitiatedBy);
@@ -177,7 +177,7 @@ public class ObjectActionReprRenderer extends 
AbstractObjectMemberReprRenderer<O
     private Object defaultFor(final ObjectActionParameter param) {
         
         val emptyPpm = param.getAction()
-                .newPendingParameterModelHead(objectAdapter)
+                .interactionHead(objectAdapter)
                 .emptyModel();
         
         val defaultAdapter = param.getDefault(emptyPpm);
diff --git 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
index dcc0eb9..b2224a9 100644
--- 
a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
+++ 
b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectActionArgHelper.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -54,8 +54,8 @@ public class ObjectActionArgHelper {
         val action = managedAction.getAction();
         val owner = managedAction.getOwner();
         
-        val head2 = action.newPendingParameterModelHead(owner);
-        val head = Head.of(owner, head2.getActionTarget());
+        val head2 = action.interactionHead(owner);
+        val head = InteractionHead.of(owner, head2.getActionTarget());
         
         final List<JsonRepresentation> argList = argListFor(action, arguments);
 
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 7ea5d51..c4b37e3 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -50,7 +50,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import 
org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
 import 
org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -192,8 +192,8 @@ implements FormUiModel, FormExecutorContext {
         final Can<ManagedObject> arguments = argCache().snapshot();
         final ObjectAction action = getMetaModel();
 
-        val head2 = action.newPendingParameterModelHead(targetAdapter);
-        val head = Head.of(head2.getActionOwner(), head2.getActionTarget());
+        val head2 = action.interactionHead(targetAdapter);
+        val head = InteractionHead.of(head2.getActionOwner(), 
head2.getActionTarget());
         
         val resultAdapter =
                 action.executeWithRuleChecking(
@@ -222,7 +222,7 @@ implements FormUiModel, FormExecutorContext {
     }
 
     public PendingParameterModel getArgumentsAsParamModel() {
-        return getMetaModel().newPendingParameterModelHead(getOwner())
+        return getMetaModel().interactionHead(getOwner())
                 .model(argCache().snapshot());
     }
 
@@ -233,7 +233,7 @@ implements FormUiModel, FormExecutorContext {
     public void clearArguments() {
 
         val defaultsFixedPoint = getMetaModel()
-                .newPendingParameterModelHead(getOwner())
+                .interactionHead(getOwner())
                 .defaults()
                 .getParamValues();
 
@@ -401,7 +401,7 @@ implements FormUiModel, FormExecutorContext {
         val realTargetAdapter = 
this.getMetaModel().realTargetAdapter(targetAdapter);
         val pendingArgs = getArgumentsAsParamModel();
 
-        val head = Head.of(targetAdapter, realTargetAdapter);
+        val head = InteractionHead.of(targetAdapter, realTargetAdapter);
         
         return argCache()
         .streamParamUiModels()
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
index 0190259..2548a27 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarParameterModel.java
@@ -25,7 +25,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.interactions.InteractionContext.Head;
+import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -116,8 +116,8 @@ implements ParameterUiModel {
         
         try {
             ManagedObject parentAdapter = getParentUiModel().load();
-            val head2 = action.newPendingParameterModelHead(parentAdapter);
-            val head = Head.of(head2.getActionOwner(), 
head2.getActionTarget());
+            val head2 = action.interactionHead(parentAdapter);
+            val head = InteractionHead.of(head2.getActionOwner(), 
head2.getActionTarget());
             
             final String invalidReasonIfAny = parameter.isValid(head, 
proposedPojoAsStr,
                     InteractionInitiatedBy.USER
@@ -138,8 +138,8 @@ implements ParameterUiModel {
         try {
             ManagedObject parentAdapter = getParentUiModel().load();
             
-            val head2 = action.newPendingParameterModelHead(parentAdapter);
-            val head = Head.of(head2.getActionOwner(), 
head2.getActionTarget());    
+            val head2 = action.interactionHead(parentAdapter);
+            val head = InteractionHead.of(head2.getActionOwner(), 
head2.getActionTarget());    
             
             final String invalidReasonIfAny = parameter.isValid(head, 
proposedAdapter.getPojo(),
                     InteractionInitiatedBy.USER

Reply via email to